2013-03-09 66 views
2

我知道您可以覆蓋默認的設備控制器,並且我爲註冊和會話控制器執行了此操作。我知道你也可以在locale下的設計中更改flash消息的文本。但是,當用戶名和密碼無效組合時,我不確定如何更改會話控制器顯示的Flash消息類型。將通知中的設計閃光消息更改爲錯誤

的創建方法看起來像

def create 
    self.resource = warden.authenticate!(auth_options) 
    set_flash_message(:notice, :signed_in) if is_navigational_format? 
    sign_in(resource_name, resource) 
    respond_with resource, :location => after_sign_in_path_for(resource) 
end 

我懷疑是驗證後續調用

warden.authenticate!(auth_options) 

期間完成但是,這是我不知道如何覆蓋在我的應用程序。

此外,我認爲這是一個複雜的覆蓋這樣一個簡單的用例改變閃光通知的顏色。

任何見解將不勝感激。

謝謝! 尼克

回答

7

你可以使用自定義失敗應用程序。正如你可以看到這個閃光信息設置正確here所以你可以在你的自定義失敗應用程序中更改它。地方

class CustomFailure < Devise::FailureApp 
    def recall 
    env["PATH_INFO"] = attempted_path 
    flash.now[:error] = i18n_message(:invalid) 
    self.response = recall_app(warden_options[:recall]).call(env) 
    end 
end 

將這個文件在你的應用程序,並說設計使用它像這樣(config/initializers/devise.rb):

所以剛開始你設計的一個繼承你失敗的應用

config.warden do |manager| 
    manager.failure_app = CustomFailure 
end 
+0

謝謝對於納什的幫助!工作出色! – nickborromeo 2013-03-09 19:32:49

+0

很高興幫助:) – 2013-03-09 20:02:25