Ruby on rails Model.create()抛出具有只读属性的错误

Ruby on rails Model.create()抛出具有只读属性的错误,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有以下rails模型(简化): class电话true 验证:brand,:presence=>true 验证:model,:presence=>true 验证:电话号码,:状态=>true 结束 根据文档,attr_readonly应该允许在创建时设置属性,但不允许在更新时设置属性 但是,当我这样做时: Phone.create(:user=>,:brand=>,:model=>“Galaxy”,:Phone\u number=>“555-433-5678”) 我得到这个错误: 无法批量分

我有以下rails模型(简化):

class电话true
验证:brand,:presence=>true
验证:model,:presence=>true
验证:电话号码,:状态=>true
结束
根据文档,attr_readonly应该允许在创建时设置属性,但不允许在更新时设置属性

但是,当我这样做时:

Phone.create(:user=>,:brand=>,:model=>“Galaxy”,:Phone\u number=>“555-433-5678”)

我得到这个错误:

无法批量分配受保护的属性用户、品牌


我遗漏了什么?

如果您想分配这样的用户和品牌关联,必须将其定义为可访问属性:

attr_accessible :user, :brand
否则,可以按如下方式分配它们:

Model.create({:user => user, :brand => brand }, :without_protection => true)

如果要分配这样的用户和品牌关联,必须将其定义为可访问属性:

attr_accessible :user, :brand
否则,可以按如下方式分配它们:

Model.create({:user => user, :brand => brand }, :without_protection => true)

Ryan,这有点复杂,因为模型有两个关联(我更新了示例)。即使我对一个
所属的
关联使用关联生成器,我也会得到另一个关联的错误。Ryan-将它们设置为可访问会有点违背目的。我希望这些联系在创造时就建立起来,然后永远不要改变;如果不是通过attr_readonly设置,我将如何实现这一点?Ryan,这比这要复杂一些,因为模型有两个关联(我更新了示例)。即使我对一个
所属的
关联使用关联生成器,我也会得到另一个关联的错误。Ryan-将它们设置为可访问会有点违背目的。我希望这些联系在创造时就建立起来,然后永远不要改变;如果不是通过attr_只读设置,我将如何实现这一点?