Ruby on rails “奇怪”;Can';t质量分配受保护的属性“;错误

Ruby on rails “奇怪”;Can';t质量分配受保护的属性“;错误,ruby-on-rails,ruby,Ruby On Rails,Ruby,我遇到了以下错误 Can't mass-assign protected attributes: 我知道这是一个普遍被问到的问题,但提供的答案似乎都不适合我。问题是,我的“父”模型中已经有两行代码: 及 我在过去遇到过这个错误,这两行代码成功地解决了这个问题。。但他们现在没有。顺便说一句,“受保护的属性”是我的“子”模型中的所有字段,而不仅仅是某些字段 希望有人能帮助我,我陷入困境,不知道还能做什么 这是完整的错误行: Can't mass-assign protected attribute

我遇到了以下错误

Can't mass-assign protected attributes:
我知道这是一个普遍被问到的问题,但提供的答案似乎都不适合我。问题是,我的“父”模型中已经有两行代码:

我在过去遇到过这个错误,这两行代码成功地解决了这个问题。。但他们现在没有。顺便说一句,“受保护的属性”是我的“子”模型中的所有字段,而不仅仅是某些字段

希望有人能帮助我,我陷入困境,不知道还能做什么

这是完整的错误行:

Can't mass-assign protected attributes: linea, origen_comp, conector, char_ini, char_fin, modopremio_id, codigo_opc, ochar_ini, ochar_fin
这就是“儿童模式”的特点

(旁注,“父/子模型”名称仅供参考,它们不是它们的真实名称(productosacierto和productosregla)

父模型(Productosacierto)

子模型(Productosregla)


如果这是您的子模型的精确副本,那么我猜问题出在attr_accessible行末尾的逗号!

我现在感到有点尴尬。我的模型上有几个sintax错误,这就是导致此问题的原因。我想当然地认为,如果存在sintax错误,rails会抛出sintax错误,特别是在在模型中编写代码是非常微妙的

这就是我所拥有的:

attr_accessible :consorcio_id, :productosacierto_id, :clave, :linea, :origen_comp, :conector, :char_inic, :char_fin, :modopremio_id, codigo_opc, :ochar_ini, :ochar_fin
这就是它应该是什么:

attr_accessible :consorcio_id, :productosacierto_id, :clave, :linea, :origen_comp, :conector, :char_ini, :char_fin, :modopremio_id, :codigo_opc, :ochar_ini, :ochar_fin 

如您所见,在codigo_opc参数之前缺少“:”,而且char_ini参数还有一个额外的“c”这不属于我。感谢所有帮助过我的人,这教会了我确保永远不要假设任何事情。

你能提供完整的错误吗?它的什么属性表示它不能质量-assign@Sam这不是rails 4,rails 3.2。TopGunCoder,我编辑了我的答案。奥斯卡,你能给我们看看你的模型文件的内容吗?当然,丹尼·范霍夫,我会编辑我的答案回答。抱歉,我遗漏了一个字段,我会编辑以修复它。这不是问题,因为如果是这样的话,它会抛出“sintax错误”。但是谢谢。
:consorcio_id, :productosacierto_id, :clave, :linea, :origen_comp, :conector, :char_inic, :char_fin, :modopremio_id, codigo_opc, :ochar_ini, :onchar_fin
has_many :productosregla
accepts_nested_attributes_for :productosregla, :reject_if => :all_blank, :allow_destroy => true
attr_accessible  :productosregla_attributes, :producto_id, :consorcio_id, :clave, :descripcion, :una_condicion
default_scope order: 'id'
self.table_name = "hproductos_aciertos"
self.table_name = "hproductos_reglas"  
belongs_to :productosacierto
attr_accessible :consorcio_id, :productosacierto_id, :clave, :linea, :origen_comp, :conector, :char_inic, :char_fin, :modopremio_id, codigo_opc, :ochar_ini, :ochar_fin 
default_scope order: 'id'
attr_accessible :consorcio_id, :productosacierto_id, :clave, :linea, :origen_comp, :conector, :char_inic, :char_fin, :modopremio_id, codigo_opc, :ochar_ini, :ochar_fin
attr_accessible :consorcio_id, :productosacierto_id, :clave, :linea, :origen_comp, :conector, :char_ini, :char_fin, :modopremio_id, :codigo_opc, :ochar_ini, :ochar_fin