2012-09-16 76 views
3

我正在研究一個需要我提交表單的簡單應用程序。我創建了兩個模型。無法批量分配受保護的屬性:用戶

user.rb

class User < ActiveRecord::Base 
    attr_accessible :email 

    has_many :item 
end 

item.rb的

class Item < ActiveRecord::Base 
    attr_accessible :user_id 

    belongs_to :user 
end 

而不是使用用戶表單視圖創建一個用戶,我想用來創建用戶item form view

項目/ _form.html.haml

= nested_form_for @item do |form| 

    = form.fields_for :user do |builder| 
    = builder.text_field :email 

    = form.submit "Save" 

難道我在這裏錯過了什麼?我使用nested_form_for btw。謝謝。

回答

0

找到了答案,我的問題。

我更新了我的items_controller.rb

def new 
    @item = Item.new 
    @item.user = User.new # I added this line. 
end 

然後我更新了item.rb的

class Item < ActiveRecord::Base 
    attr_accessible :user_attributes 

    belongs_to :user 
    accepts_nested_attributes_for :user 
end 
+0

如果您想爲現有用戶創建項目,該怎麼辦? –

0

試試這個

attr_accessible :email :user 
+0

感謝您的回答,但沒有奏效。 – Ben

+0

使嵌套形式的工作,除非有一些神奇的事情我不知道,你應該增加: accepts_nested_attributes_for:用戶 檢查的細節在這裏:http://apidock.com/rails/ActiveRecord/NestedAttributes/ClassMethods/accep_nested_attributes_for 到您的物品模型。 – trueunlessfalse

+0

@trueunlessfalse我試圖包括它,但它隱藏在視圖中的電子郵件字段。 – Ben

0

嘗試這個代碼

class Item < ActiveRecord::Base 
    attr_accessible :user_id 
    accepts_nested_attributes_for :user  # <--- This should help 

    belongs_to :user 
end 

class User < ActiveRecord::Base 
    attr_accessible :email 

    has_many :items       # <--- Typofix 
end 
相關問題