1

以下のフォームを送信しようとすると、このエラーが発生しますWARNING: Can't mass-assign protected attributes: sub_category。stackoverflowで以前に尋ねられた関連する質問を確認しようとしましたが、正しい方向に進んでいるようですが、何らかの理由で同じエラーが発生します。私は間違っていますか?。私は以下のすべての情報を含めました、事前にありがとう。

表示/フォーム

 <%= form_for @ip ,:url=>{:action =>"create"} do |f| %>
 <%=f.text_field   :email %>
 <% f.text_field :ip_address %>
      <%= f.fields_for :sub_category do |s| %>
      <%=s.text_field :name%>
      <%end%>
 <%=f.submit "submit" %>
 <%end%>

コントローラ

def create
@ips=Ip.new(params[:ip])
    @ip=@ips.sub_categories.build 
if @ip.save
    redirect_to :controller=>"home" ,:action=>"index"
else
    render 'index'
end     

モデル

class Ip < ActiveRecord::Base
has_many :sub_categories ,:through=>:ip_subs
has_many :ip_subs
accepts_nested_attributes_for :sub_categories 
attr_accessible :sub_categories_attributes,:ip_address,:email,:ip_count
end

class SubCategory < ActiveRecord::Base
has_many :ip ,:through=>:ip_subs
has_many :ip_subs
end

class IpSub < ActiveRecord::Base
belongs_to :ip
belongs_to :sub_category
end
4

1 に答える 1

1

f.fields_for :sub_categories(アソシエーション名)を使用する必要があります。

また、フォームをレンダリングする前に、関連付けを作成することを忘れないでください。

# in controller
def new
  @ip = Ip.new
  @ip.sub_categories.build
end

rubyonrails api :: fields_for

于 2012-04-25T19:47:42.337 に答える