routes.rbにカスタムロジックを入れても問題ありませんか?例えばRails routes logic
:そのように動作しません
unless current_user
root :to => anonymous_page
else
root :to => logged_in_page
end
routes.rbにカスタムロジックを入れても問題ありませんか?例えばRails routes logic
:そのように動作しません
unless current_user
root :to => anonymous_page
else
root :to => logged_in_page
end
経路にカスタムロジックを入れることができますが、アベンジャーが示唆したように - ルートファイルがロードされているため、「current_user」は機能しません。私たちは時には私たちのルートファイルでロジックを使用します(例えば、RAILS_ENV == 'development'の場合にのみ利用可能なルートを設定するなど)。あなたはおそらく欲しい
は「anonymous_page」などのbefore_filterです:
before_filter :redirect_if_logged_in, :only => :anonymous_page
def redirect_if_logged_in
redirect_to logged_in_page if current_user.present?
end
。ルートは、要求ごとにではなく、サーバーの起動時に読み取られ/作成されます。そのようなロジックをコントローラに入れなければなりません。
あなたは何を考えているあなたを行うにクリアランス宝石を使用することができます。クリアランスのドキュメントから:
これは、クリアランスがミドルウェアスタックに追加され、ルートが処理される前にサインインされたステータスを利用できるためです。
注:ここでは魔法を起こすために何かをしています:https://github.com/plataformatec/devise/wiki/How-To:-定義 - 異なる - ルート - ルート - アウトユーザ – Jonathan