Я новичок в Rails, и недавний переход к сильным параметрам Rails 4 еще больше смутил меня.Rails 4 Вложенный маршрут с сильными параметрами
Я пытаюсь настроить ссылку для подтверждения аккаунта для людей, которых нужно щелкнуть.
Я следующий маршрут создан:
rake routes
Prefix Verb URI Pattern Controller#Action
GET /users/:id/confirm/:confirmation_code(.:format) users#confirm
В моих UserController
, у меня есть confirm
действия, который вызывается (я тестировал с помощью простого перенаправления в этом действии),
и вот рельсы 4 сильные параметры:
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation, :confirmation_code)
end
Но я получаю следующее сообщение об ошибке при попытке доступа /users/1/confirm/foobar
param not found: user
Я могу понять, почему я получаю эту ошибку, но я не уверен, как это исправить, не отменяя безопасность сильного Params пути удаления require(:user)
. Я даже не 100%, если мой базовый подход прав.
(я только что закончил Майкл Hartl в рельсах учебник и учебное пособие имеет require(:user)
в контроллере пользователя, и я на самом деле не уверен, что последствия безопасности удаления его)
У вас правильно настроены маршруты? – emaillenin
Если у меня есть, у вас есть пользовательский контроллер и контрольный контроллер, верно? На пользователе вы должны сохранить сильные параметры, необходимые для пользовательского контроллера и сильного параметра, необходимые для подтверждения на контроллере подтверждения, а на контроллере подтверждения у вас есть доступ к пользователю как user_id. Проверьте свои маршруты, выполнив «рейк-маршруты» на своей раковине. – hmartinezd
Извините, нет. У меня есть пользовательский контроллер с действием 'confirm'. Я обновил вопрос с дополнительной информацией –