Я использую Devise (1.4.8) для моей модели User и пытаюсь реализовать простую функцию бета-приглашения (Rails 3.0.7), следуя railscast Райана Бейтса.
Я не могу заставить [новый] метод контроллера моей модели устройства распознать токен приглашения. Я подозреваю, что это потому, что я не успешно переопределяю контроллер регистрации Devise.
Я предполагаю, что вместо использования user_controller для передачи переменных из формы регистрации, я должен переопределить контроллер регистрации devise. Итак, мой registrations_controller.rb в корневой папке контроллеров:
class RegistrationsController < Devise::RegistrationsController
def new
super
@user = User.new(:invitation_token => params[:invitation_token])
@user.email = @user.invitation.recipient_email if @user.invitation
end
end
В маршрутах.rb:
devise_for :users, :controllers => {:registrations => 'registrations'} do
get 'users/sign_up/:invitation_token' => 'devise/registrations#new', :as => "new_user_registration"
end
В приглашение_контроллер.rb
Mailer.invitation(@invitation, new_user_registration_url+"/#{@invitation.token}").deliver
Как я могу переопределить контроллер регистрации Devise и успешно передать: приглашение_токен из новой формы пользователя Devise?