更新代码格式以便更好地查看。
民间,
我一直在看这个,但我不明白这里有什么可能搞乱的。我正在使用Devise。
class User < ActiveRecord::Base
has_many :addresses
accepts_nested_attributes_for :addresses
# Other stuff here
end
class Address < ActiveRecord::Base
belongs_to :user
validates_presence_of :zip #:street_address1,
端
--------------------日志输出开始------------------------ ------
在127.0.0.1开始POST“/ users” 2011-05-28 11:43:27 -0700加工 通过RegistrationsController #create as HTML参数:{“utf8”=&gt;“√”, “authenticity_token”=&gt; “中CEmdqlsmdYa6Jq0iIf5KAxxISsUCREIrFNXWkP80nhk =”, “用户”=&GT; { “电子邮件”=&gt; “中a2@gmail.com”, “password”=&gt;“[FILT ERED]”, “addresses_attributes”=&GT; { “0”=&GT; { “street_address1”=&gt;“中234 Pitkin Ct。“,”zip“=&gt;”12456“}}}, “commit”=&gt;“注册”}警告:不能 质量分配受保护的属性: addresses_attributes SQL(0.0ms) 开始SQL(164.0ms)显示表格 用户负载(0.0ms)SELECT
users
。id
FROMusers
WHERE(users
。-------------------- log output end ------------------------ ------
发布的数据中存在zip,发布的数据似乎格式正确。在网页表单上,我收到“地址zip不能为空”的错误。我已经挖出了导致“无法大量分配受保护属性”的警告,但没有找到任何可以帮助我的东西。
感谢您的想法和指示。
-S
答案 0 :(得分:38)
看看这里并学习:)
http://railscasts.com/episodes/26-hackers-love-mass-assignment
编辑:
在用户模型中使用accepts_nested_attributes_for
可以将数据发送到地址模型。
然后,在地址模型中,您必须设置所请求的attr_accessible
答案 1 :(得分:11)
SpecificModel
内部( appfolder / app / model / specific_model.rb )
尝试使用
attr_accessible :addresses_attributes, :another_attribute_to_make_mass_assignable, :another_attribute, etc.
答案 2 :(得分:5)
如今(2013年4月),您应该开始使用https://github.com/rails/strong_parameters
答案 3 :(得分:3)
只需在模型中包含数据字段,如下所述
attr_accessible :addresses_attributes