で最初のネストされたフォームを作成していRails 3.2.13
ます。User
登録していてemail
、情報とpassword
情報を入力しています..しかし、ユーザーが送信をクリックするとエラーが表示されます。エラーは一番下にあります。address
company
この行についてはよくわかりません。attr_accessible :address_attributes, :company_attributes
これを読んでも役に立ちますが、そうではなく、ビューに住所がありますが、1対1の関係のためにモデルに住所がありますが<%= f.fields_for :**address** do |builder| %>
、フォームがある場合は表示されません。私は何をしなければなりませんか?:-) その後、投稿が送信されます
"companies"=>{"name"=>"Companyname"
ユーザーモデル
class User < ActiveRecord::Base
attr_accessible ...
has_many :orders
belongs_to :address
belongs_to :company
accepts_nested_attributes_for :address, :company
attr_accessible :address_attributes, :company_attributes
会社のモデル
class Company < ActiveRecord::Base
attr_accessible ...
has_many :users
validates_presence_of ...
end
住所モデル
class Address < ActiveRecord::Base
attr_accessible ...
has_many :orders, :foreign_key => 'payment_address_id'
has_many :orders, :foreign_key => 'delivery_address_id'
has_many :users
validates_presence_of ...
end
new.html.erb (新しいユーザーの作成)
<%= form_for @user do |f| %>
...
<%= f.fields_for :addresses do |builder| %>
...
<% end %>
<%= f.fields_for :companies do |builder| %>
...
<% end %>
<%= f.submit %>
<% end %>
送信をクリックしている間のエラー
Can't mass-assign protected attributes: addresses, companies
編集:
最初の間違い: Class Userで変更しました
belongs_to :address
belongs_to :company
on
has_one :address
has_one :company
そして住所と会社のモデルで私は編集します
has_many :users
on
belongs_to :user
しかし、ネストされたフォームはビューに表示されません..buildメソッドを追加してUsers Controllerを編集しようとしました
def new
@user = User.new
@user.company.build
@user.address.build
end
しかし、新しいエラーが発生しています
undefined method `build' for nil:NilClass
私は今何をしなければなりませんか?