Переопределить контроллер регистрации устройств

Я добавил поле в форму регистрации, основанное на другой модели, см. Как использовать вложенные атрибуты с моделью устройства для подробностей. Эта часть работает нормально.

Проблема теперь в том, что когда я сохраняю, происходит сбой в действии create контроллера регистрации, который предоставляется devise с Activerecord :: UnknownAttributeError в этом поле (компания ).

Я предполагаю, что мне нужно переопределить контроллер регистраций, или есть лучший / более простой способ, которым я должен подходить к этому?

231
задан Community 23 May 2017 в 02:26
поделиться

1 ответ

В вашей форме вы передаете какие-либо другие атрибуты через массовое присвоение, которые не принадлежат вашей модели пользователя или любой из вложенных моделей?

Если да, я полагаю, что в этом случае срабатывает ActiveRecord::UnknownAttributeError.

В противном случае, я думаю, вы можете просто создать свой собственный контроллер, сгенерировав что-то вроде этого:

# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    # add custom create logic here
  end

  def update
    super
  end
end 

А затем сказать devise использовать этот контроллер вместо контроллера по умолчанию с помощью:

# app/config/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}
352
ответ дан 23 November 2019 в 03:37
поделиться
Другие вопросы по тегам:

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