1
的Rails:4.0.0, 設計:3.0.0rc設計:: SessionsController增加了錯誤閃光燈,而不是模型
設計似乎沒有在所有的錯誤信息添加到模型,委託,要驗證。這通常很好。但是在SessionsController的情況下,將錯誤添加到模型是否有意義,以便您可以使用field_with_errors或某些此類功能,並在用戶沒有放入電子郵件時說'需要電子郵件'。
下面的代碼片段是我認爲我必須修改Devise才能讓模型添加錯誤的地方。
class Users::SessionsController < Devise::SessionsController
# POST /resource/sign_in
def create
self.resource = warden.authenticate!(auth_options)
debugger
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
end
有沒有人有什麼建議做什麼?通過類似以下的方式在登錄時向模型添加錯誤甚至是一個好主意? error.add(:model, "error message")
這似乎是,如果我使用默認的flash [:notice]消息,那麼我錯過了能夠將錯誤消息附加到特定字段,這是我的目標。
感謝您的回答!我知道你不應該透露你係統中的賬戶信息,我會確保顯示的信息永遠不會是「這是一個不正確的密碼」。在「請輸入密碼」或「請輸入電子郵件」的情況下更是如此。要通知用戶他們忘了做什麼,而不是聲稱它只是「無效」。無效如何?如果他們沒有投入任何東西,我應該可以告訴他們他們沒有做他們應該做的一切。同時,我只是使用html5表單驗證來實現這一點。 – pedromaltez
@佩德羅,我明白你的關切。可以通過重寫Devise FailureApp來修改該行爲。但是我認爲你的客戶端驗證足夠好,不需要花費更多時間。 –