2016-09-04 5 views
0

У меня есть модель под названием «Исполнители», которая имеет несколько столбцов (: name,: bio,: email), из которых проверены только имя и адрес электронной почты. Когда я захожу в консоль и печатаю:Атрибуты объекта сохраняются как ноль

p = Performer.new(name: "example", email: "[email protected]") 
p.save! 

Объект сохраняется в базе данных, но все значения столбцов равны нулю. Ошибок не сообщается в консоли. Это предотвращает работу одного из основных компонентов моего приложения. Любая помощь будет принята с благодарностью.

+0

У вас есть некоторые 'attr_accessor' в вашей модели (чем [этот ответ] (http://stackoverflow.com/a/35660662/2483313) может вас заинтересовать)? Отправьте свою модель. – spickermann

ответ

0

Я в конечном итоге решить эту проблему путем удаления ненужных attr_accessor в моем файле embed.rb. Оказывается, если вы попытаетесь сохранить атрибут с избыточным attr_accessor, он просто сделает значения nil.

0

Удостоверьтесь, что модель Performer не имеет валидации для целей тестирования.

также :name => 'SO' ИЛИ name: 'SO'

p = Performer.new(:name => "example", :email => "[email protected]") 
#OR 
p = Performer.new(name: "example", email: "[email protected]") 
p.save! 
+0

удаление валидаций не помогло. Также: name = была опечаткой. Он по-прежнему создает объект со всеми атрибутами nil. –

+0

@CharlosDesbiens может выставить yr 'schema.rb' файл там' Performer' и Model тоже. Также проверьте эту ссылку http://stackoverflow.com/questions/8731232/in-rails-why-would-saving-a-new-record-return-nil-and-nothing-gets-saved – 7urkm3n

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