我有一個模型,如下所示:可以移除一些錯誤消息的Rails 3
class Greeting < ActiveRecord::Base
attr_accessible :icon, :content, :name
belongs_to :user
belongs_to :board
validates :user_id, :presence => true
validates :board_id, :presence => true
我不想向用戶顯示錯誤消息,如果沒有用戶模型或主板型號。 我也做了以下內容:
after_validation :remove_errors_for_user_board
def remove_errors_for_user_board
self.errors.delete_if{ |key,value| key == :user_id || key == :board_id }
end
所以基本上我刪除任何錯誤消息的這些屬性。 這是好的,是最好的辦法嗎?
感謝NOOB工作。
當出現錯誤,特別是因爲您實際上需要用戶和董事會以創建問候語時,刪除錯誤消息似乎有點違反直覺。 編輯(因爲我不小心按下了輸入): 您可能想要確保在沒有用戶和董事會附加問候語的情況下添加問候語是沒有辦法的? – Frost
沒有板子就沒有辦法添加問候語,但是可以在沒有用戶的情況下添加問候語。所以我脫掉了用戶的驗證。然後我用@ board.greetings.build(params [:greeting])建立一個問候語。如果沒有第一張紙板,沒有辦法找到問候語。我只是不想將錯誤信息顯示給用戶,說他們不會理解這個板子。也許我不需要驗證這一點,因爲必須有董事會? – chell