2016-07-29 4 views
3

工夫を使用しているとき、私はメッセージに関する問題を抱えている:Ruby on Rails 4いつrequire_no_authenticationメソッドを呼び出すのですか?

1.Iは、ログイン後にアラートを表示したいと工夫

の管理

2.Iオーバーライドメソッドrequire_no_authenticationのトップページにリダイレクトされません。

def require_no_authentication 
    super 
    flash.delete :alert 
    end 

3.Inの場合:ログインしたアカウントが削除されました(ソフト削除、deleted_at!= nil)。私には警告が表示されません(「あなたのアカウントは削除されました」)。このアラートを保持したい

4.I have so so以下のようにlution:

def require_no_authentication 
    super 
    flash.delete :alert unless flash[:alert] == 
     I18n.t("devise.failure.admin.inactive") 
    end 

私はすべてのケースをカバーすることはできませんが、ログインログアウトでフラッシュアラートを持って

我々は別の実装を持っている5.Can、あなたは私は例すべてがrequire_no_authenticationメソッドを呼び出します表示することができますか? ありがとう!

答えて

0

特定のアラートを削除するには、devise.en.ymlファイルまたは以下のような対応する翻訳ファイルで特定のアラートメッセージを設定解除するだけで簡単です。

sessions: 
    signed_in: '' 

アラートをレンダリングする場所にチェックを付けます。

<% flash.each do |name, msg| %> 
    <%= content_tag :div, msg, :id => "flash" if msg.length > 0 %> 
<% end %> 

あなたはcssを使うことができますが、それは許されません。

.flash.alert:empty { 
    display: none; 
} 

require_no_authenticationメソッドの場合、これは内部的にdeviseによって使用されるアクションです。このメソッドをオーバーライドすることはお勧めしません。このソリューションに問題がある場合はお知らせください。

関連する問題