Deviseは奇妙な振る舞いをしています。赤またはエラーメッセージは表示されますが、緑または成功メッセージは表示されません。
これは、ユーザーがサインインしているかどうかに応じて、サインインページまたはホームページにリダイレクトするようにルーティングとコントローラーを変更した後に発生しました。
したがって、routes.rbには次のようになります。
devise_for :users
root :to => "questions#redirect_on_visit"
match 'home', :to => "questions#index"
およびコントローラー:
before_filter :authenticate_user!, :except => [:redirect_on_visit]
def redirect_on_visit
if user_signed_in?
redirect_to home_path
else
redirect_to new_user_session_path
end
end
また、サインイン/サインアウト後に適切なページにリダイレクトするようにアプリケーションコントローラーを変更しました。
protected
def after_sign_in_path_for(resource)
stored_location_for(:user) || root_path
end
private
def after_sign_out_path_for(resource)
stored_location_for(:user) || root_path
end