Rails AddAttributeToModel не будет отображать новую добавленную запись

Я только начал изучать RoR, и я действительно застрял. Я создал новое приложение и пытаюсь добавить поле номера телефона в ранее созданную форму (Билеты). Я создал базу данных, добавил скрипт миграции, используя:

rails generate migration AddPhoneToTickets phone:string

плюс перенес его, используя:

rake db:migrate

Наконец, я добавил это поле во все соответствующие файлы html.erb. Когда я добавляю новую запись в приложение, отображается атрибут телефона, и когда я заполняю его и нажимаю «Обновить», я получаю сообщение: «Билет успешно обновлен». К сожалению номер телефона не сохраняется в БД и не отображается в объявлениях.

С нетерпением жду вашей помощи.


person user3292652    schedule 25.02.2014    source источник


Ответы (2)


Должна быть проблема с сильными параметрами: проверьте в своем TicketsController, выглядит ли ваш метод ticket_params следующим образом:

def tickets_params
   params.require(:ticket).permit(whatever_other_params, :phone)
end

Вы также можете проверить, есть ли в журнале вашего сервера при сохранении сообщение о недопустимом параметре.

Посмотрите здесь: http://edgeguides.rubyonrails.org/action_controller_overview.html#strong-parameters

person sissy    schedule 25.02.2014
comment
Спасибо за быстрый ответ. К сожалению, у меня нет никаких параметров, упомянутых где-либо в коде контроллера. Я не уверен, что это так. - person user3292652; 25.02.2014
comment
если вы используете Rails 4, у вас наверняка есть что-то подобное в ваших контроллерах (Rails 4 основан на сильных параметрах), иначе вы не сможете обновить какие-либо параметры. Можете ли вы проверить это, пожалуйста? - person sissy; 25.02.2014

Если вы используете Rails 4, найдите метод ticket_params в контроллере и добавьте :phone в .permit, где перечислены другие атрибуты.

person j-dexx    schedule 25.02.2014