2011-07-17 180 views
2

在我的一個模型中,我有一個before_create屬性,用於設置從Web API中獲取的特定值。但是,如果在使用API​​時未找到結果,則此before_create返回false,從而導致模型創建失敗。before_create失敗時顯示警告消息?

這工作正常,但我想也顯示一條警告消息,以便用戶知道他們的輸入未被接受。我會如何去做這件事?

+0

請發佈您的'before_create'和其他相關代碼。 – s84

回答

4

A before_create是不正確的地方報告錯誤。您的before_create應嘗試設置該值,然後驗證程序應檢查它是否存在,如果驗證程序未找到該值,則會收到錯誤消息等。所以,如果你的屬性稱爲pancakes,那麼你就會有這樣的事情:

before_validation :stuff_web_api_value_into_pancakes, :if => :new_record? 
validates_presence_of :pancakes 

你可以,當然,使用不同的驗證比validates_presence_of,這只是有用於說明目的。你需要一個before_validation hook以正確的順序發生,:if => :new_record?只會在創建新模型時運行。

+1

我在哪裏可以找到這個用於煎餅的API? – Thilo

+0

@Thilo:[Fargo(NSFW)](http://www.youtube.com/watch?v=dJUvPZI3Cr4)。 –

+0

我相信驗證在'before_create'之前運行。 – madh

相關問題