ruby - Unpermitted parameters for nested form many-to-many relationship Rails 4 -


i have simple blog app, want able create post , create new tag in same form, using nested form.

post , tag have many-to-many relationship, via join table:

class posttag < activerecord::base   belongs_to :post   belongs_to :tag end 

here's tag model:

class tag < activerecord::base   has_many :post_tags   has_many :posts, :through => :post_tags    validates_presence_of :name   validates_uniqueness_of :name end 

post model accepts nested attributes tags:

class post < activerecord::base   has_many :post_tags   has_many :tags, :through => :post_tags   accepts_nested_attributes_for :tags   validates_presence_of :name, :content end 

on posts controller, permit tags_attributes:

    def post_params       params.require(:post).permit(:name, :content, :tag_ids => [], :tags_attributes => [:id, :name])     end 

in form new post, want able either associate existing tags (via checkboxes) or create new 1 via nested form using fields_for:

....   <div class="field">    <%= f.collection_check_boxes :tag_ids, tag.all, :id, :name %><br>     <%= f.fields_for [@post, tag.new] |tag_form| %>     <p>add new tag:</p><br>      <%= tag_form.label :name %>      <%= tag_form.text_field :name %>     <% end %>   </div>   <div class="actions">   <%= f.submit %>  </div>   <% end %> 

my error "unpermitted parameters: tag":

parameters: {"utf8"=>"✓",  "authenticity_token"=>"dzncgfxrvuoy4biummxi7ktler/r32pux55wwhzss4q=", "post"=>{"name"=>"post title", "content"=>"post content", "tag_ids"=>[""], "tag"=>{"name"=>"new tag"}}, "commit"=>"create post"} unpermitted parameters: tag 

change:

<%= f.fields_for [@post, tag.new] |tag_form| %> 

to

<%= f.fields_for(:tags, tag.new) |tag_form| %> 

Comments

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

ios - Change Storyboard View using Seague -