2016-10-12 23 views
5

Próbuję dodać ActiveAdmin::Comment do mojej edycji Member. Byłem w stanie to zrobić poprzez dodanie ARB oraz częściowegoDodaj aktywne komentarze administratora podczas edycji

#_comments.html.arb 
active_admin_comments_for(resource) 

ten wyświetla poprawnie, ale po wpisaniu w tekście, a następnie naciśnij przycisk Dodaj komentarz, komentarz nie został faktycznie dodaje, po prostu wraca do ekran pokazu.

Co próbuję zrobić, to uzyskać komentarze tam, ale nie mam przycisku Dodaj komentarz. Chciałbym dodać komentarz, naciskając przycisk Update Member. W ten sposób wszelkie zmiany wprowadzone do członka będą zapisywane wraz z komentarzem w tym samym czasie.

Czy istnieje sposób na to, aby dodać komentarze za pomocą przycisku Update Member?

EDIT:

Próbowałem również dodanie relacji w moim modelu

#model 
has_many :comments, as: :resource, dependent: :destroy, class_name: 'ActiveAdmin::Comment' 
accepts_nested_attributes_for :comments, reject_if: :reject_comment 


# members.rb - form 
f.inputs "Add A Comment" do 
    f.semantic_fields_for :comments, ActiveAdmin::Comment.new do |c| 
    c.inputs :class => "" do 
     c.input :resource_id, :input_html => { :value => "1" }, as: :hidden 
     c.input :resource_type, :input_html => { :value => "Member" }, as: :hidden 
     c.input :namespace, :input_html => { :value => :admin }, as: :hidden 
     c.input :body, :label => "Comment" 
    end 
    end 
end 

Jednak nawet z dozwolonych params jeszcze nie zapisać jako komentarz.

Odpowiedz

2

Skończyło się na tym, że to działało.

modele/Members.rb

has_many :comments, as: :resource, dependent: :destroy, class_name: 'ActiveAdmin::Comment' 
accepts_nested_attributes_for :comments, reject_if: :reject_comment 

def reject_comment(comment) 
    return comment['body'].blank? 
end 

app/Members.rb

# in the controller section of controller do 
def update(options={}, &block) 
    params[:member][:comments_attributes]['0']['namespace'] = 'admin' 
    params[:member][:comments_attributes]['0']['author_id'] = current_admin_user.id 
    params[:member][:comments_attributes]['0']['author_type'] = 'AdminUser' 
    # This is taken from the active_admin code 
    super do |success, failure| 
    block.call(success, failure) if block 
    failure.html { render :edit } 
    end 
end 

# in the form portion 
f.inputs "Add A Comment" do 
    f.semantic_fields_for :comments, ActiveAdmin::Comment.new do |c| 
    c.inputs :class => "" do 
     c.input :body, :label => "Comment", :input_html => { :rows => 4 } 
    end 
    end 
end 

To pozwala mi mieć pole o nazwie Comment i jeśli chcę, aby dodać komentarz while Edytuję Member Mogę to zrobić i zapisać komentarz po naciśnięciu przycisku f.actionsUpdate Member

+0

Hej - próbuję zrobić coś podobnego - używaj komentarzy jako zatwierdzenia prawie git. Dziękuję za to - będzie to część tego, co wykorzystuję, ale także chcę przeciążyć usuwanie/niszczenie, aby "wyskakujące na pewno" było wprowadzeniem tekstowym, które zmusza do dodania komentarza lub nie usuwać; czy próbowałeś czegoś podobnego? – grimmwerks

+0

jak zezwolić na komentowanie parametrów? Otrzymuję błąd jako unpermitted_parameters: comments_attributes .... Rails verison to 4.2.6 – Ann10