0

サインアップルートをカスタマイズした後、デバイスに問題があります。デバイスのドキュメントには、ルートを簡単にカスタマイズできることが記載されているため、URL にトークンを追加して、簡単な招待システムをセットアップしようとしました。本当に簡単で、私がしたことは追加することだけでした

devise_for :users, :path_names => { :sign_up => "signup/:invitation_token" }

私のルートへ。メーラーがトークンを含むメールを送信し、内部で I pass

new_user_registration_path(@invitation.token)

レーキルート 言う

 new_user_registration GET    /users/signup/:invitation_token(.:format)     devise/registrations#new

しかし、私はまだ得ています

 No route matches {:action=>"new", :controller=>"devise/registrations", :locale=>:de, :invitation_token=>nil}

トークンを渡すかどうかはわかります...

何が欠けているのかわかりません。前もって感謝します。誰かが私が間違っていることを理解してくれることを願っています。

よろしく、ロブ

4

1 に答える 1

1

@invitation.tokenそうでないことを確認してくださいnil

目撃しているエラーは、リンクタグを渡すすべてのビューで発生しnilますnew_user_registration_path

users/registration招待システムを正しく機能させるには、Deviseのコントローラーのデフォルトの動作をオーバーライドする必要があることに注意してください。このようなものが機能します:

# routes.rb
devise_for :users, :path_names => { :sign_up => "signup/:invitation_token" }, :controllers => {:registrations => "users/registrations"}

# app/controllers/users/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
    def create
        # add custom create logic here
    end
end
于 2013-03-08T22:28:19.547 に答える