2013-12-04 4 views
0

Im работает в следующей ошибкиWeird «Может не массовый Присвоить защищенные атрибуты» ошибка

Can't mass-assign protected attributes: 

Я знаю, что это вообще задаваемый вопрос, но ни один из ответов, представленных не похоже на работу для меня. Дело в том, у меня уже есть эти 2 строки в моей «родительской» модели:

accepts_nested_attributes_for 

И

attr_accessible :childmodel_attributes 

я запустить в эту ошибку в прошлом, и эти 2 линии succefully решается вопрос Но они этого не делают. Кстати, «защищенные атрибуты» - это ВСЕ поля в моей «дочерней» модели, а не только определенные.

Надеюсь, кто-то может мне помочь, я застрял и не знаю, что еще делать.

Это полная линия ошибки:

Can't mass-assign protected attributes: linea, origen_comp, conector, char_ini, char_fin, modopremio_id, codigo_opc, ochar_ini, ochar_fin 

Это то, что "child_model" имеет

:consorcio_id, :productosacierto_id, :clave, :linea, :origen_comp, :conector, :char_inic, :char_fin, :modopremio_id, codigo_opc, :ochar_ini, :onchar_fin 

(Sidenote, имена "родитель/модель ребенка" только для справки, они не их истинные имена (productosacierto И productosregla) будет его.

родитель Модель (productosacierto)

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" 

Модель ребенка (Productosregla)

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' 
+0

Это Rails 4? –

+1

Не могли бы вы предоставить полную ошибку? какой атрибут он говорит, что он не может назначить массой – TopGunCoder

+0

@Sam D Не рельсы 4, рельсы 3.2. TopGunCoder, я отредактировал свой ответ. –

ответ

0

Если это точная копия модели ребенка, то я думаю, запятая в конце attr_accessible линии проблема!

+0

Извините, я ушел из поля, я отредактирую, чтобы исправить его. Это не проблема, так как это могло бы вызвать «ошибку синтаксиса», если бы это было так. Но спасибо. –

0

Я чувствую себя немного смущенным прямо сейчас. На моей модели было несколько синтаксовых ошибок, и именно это вызвало эту проблему. Я принял это как должное, что рельсы бы бросить синтаксис ошибки, если там были некоторыми, особенно когда это настолько деликатно, когда дело доходит до написания кода в модели ...

Это то, что я имел:

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 паров были лишним «с», что вратарем принадлежите. Спасибо всем, кто помог, это научило меня не задумываться ни о чем.

Смежные вопросы