私はユーザーモデルにDevise(1.4.8)を使用しており、Ryan Batesのrailscastに従って、単純なベータ招待機能(Rails 3.0.7)を実装しようとしています。
デバイスモデルのコントローラーの[新しい]メソッドで招待トークンを認識できません。これは、Deviseの登録コントローラーを正常にオーバーライドしていないためだと思います。
登録フォームから変数を渡すためにuser_controllerを使用する代わりに、deviseの登録コントローラーをオーバーライドする必要があると想定しています。したがって、controllersフォルダーのルートにある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
Invitation_controller.rbで
Mailer.invitation(@invitation, new_user_registration_url+"/#{@invitation.token}").deliver
Deviseの登録コントローラーをオーバーライドして、Deviseの新しいユーザーフォームから:invitation_tokenを正常に渡すにはどうすればよいですか?