Задать вопрос

Не могу присвоить значение полю модели Rails?

Друзья совсем не могу понять в чем дело, рельсы только изучаю может проблема на поверхности..
Есть моделька
class Liquid < ActiveRecord::Base
  attr_accessor :name, :chemical
end

и миграция
class CreateLiquids < ActiveRecord::Migration
  def change
    create_table :liquids do |t|
      t.string :name
      t.string :chemical
      t.timestamps null: false
    end
  end
end

Миграция применена, в консоли рельс создаю экземпляр класса x = Liquid.new и устанавливаю допустим chemical - все устанавливается, а если задаю значение для x.name то x.name так и остается nil, в чем соль?
>> x.name=1
#<Liquid id: 8, name: nil, chemical: "1", created_at: "2015-10-18 08:58:31", updated_at: "2015-10-18 08:58:31">
  • Вопрос задан
  • 342 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
2ord
@2ord
Это нововведение RoR версии 4.
Читай про строгие параметры.
Ответ написан
Комментировать
AMar4enko
@AMar4enko
1. Переименуйте поле
2. Пройдитесь дебаггером
Ответ написан
Комментировать
@0xdeface Автор вопроса
python, php
Создал миграцию переименовал на nam - заработало, удалил фаил базы, миграции, сделал все заного
с полем name не работает..магия
P.S attr_accessor не нужен вообще, у кого будет проблема похожая почитайте на тему attr_accessor and attr_accessible
Ответ написан
Комментировать
@thepry
Ruby on rails, 1С разработчик
А зачем тут attr_accessor?
Ответ написан
Комментировать
@epalguev
найди в контроллере в разделе "private" функцию с названием ИМЯКОНТРОЛЛЕРА_params, там смотри params.require(:ИМЯКОНТРОЛЛЕРА).permit( _ищи здесь_ ) в скобках перечислены разрешенные парматеры, тут должны быть ":name, :chemical", если нету, то добавь. А "attr_accessor :name, :chemical" из модельки удали
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы