2015-06-18 70 views
1

我想驗證我的條目是否存在於數據庫中。換句話說,檢查輸入數據是否存在於表中,如果不放棄,否則停止並顯示錯誤消息,如存在驗證等。 因此,據我所知,沒有驗證:存在或類似的東西Rails 4.2。 問:有沒有簡單的方法來做到這一點?驗證是否存在

如果沒有,我可以手動檢查是否存在在我的控制器這樣的:

@client = Client.where("name = ?", @request.name).take 
if @client.present? 
    @request.client_id = @client.id 
else  
    # some error message 
    render 'new' 
end 

我認爲這應該工作,但如何顯示錯誤信息,不閃爍。

回答

1

您可以使用​​來驗證客戶端名稱是否唯一

class Client < ActiveRecord::Base 
    validates :name, uniqueness: true 
end 

如果這不能滿足你的需要,那麼你總是可以創建一個custom validation方法,並添加錯誤

class Client < ActiveRecord::Base 
    validate :some_custom_method 

    def some_custom_method 
    # check for some condition 
    # add error messages if that condition fails 
    end 
end 

如果您使用唯一性助手,請確保在您的數據庫中添加唯一的常量。

更新:

您可以添加錯誤信息是這樣的:

def some_custom_method 
    errors.add(:base, "error message") unless some_condition 
end 

詳情結帳working with errors

+0

如何添加錯誤信息? – yerassyl