2017-01-25 1 views
0

私はこのコールバックを私のユーザモデルに追加しようとしています。これは私がDeviseを使用して生成したものです。ユーザモデルにカスタムコールバックを追加する

before_save :check_invite_code 

    def check_invite_code 
    if self.invite_code == 'first20' 
     User.save 
    else 
     {icon: 'error', message: "Sorry that's not a valid invite code"} 
    end 
    end 

私が午前の問題は、私の見解に戻って、他のブロックで返されたハッシュを渡すことです。通常、私はコントローラーのアイコンとメッセージをフラッシュで使用することができます。私はそれをどうやって行うのか分からない。私はUsersControllerを持っていません。なぜなら、deviseは経路がdevise/controller#actionであるためにルーティングを処理するからです。ですから、私はコントローラの中にdeviseディレクトリを作成し、セッションなどの対応するコントローラを作成し、deviseメソッドをオーバーライドしますか?奇妙な経験を持つ人からの指導を探しています。

答えて

2

あなたがUserControllerでをカスタマイズしたい場合は、簡単に行うことができる。例えば

rails generate devise:controllers [scope] 

rails generate devise:controllers users 

チェックアウトのドキュメントによるhere

関連する問題