我想验证我在数据库中存在的条目。换句话说,检查表中是否存在输入数据,如果没有,则停止并显示错误消息,如在状态验证等。 所以据我所知,在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
我认为这应该可行,但如何显示错误信息,而不是闪存。
答案 0 :(得分:1)
您可以使用uniqueness helper
验证客户名称是否唯一
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
P.S如果您使用唯一性助手,请确保在您的数据库上添加唯一的constaint。
更新
您可以添加如下错误消息:
def some_custom_method
errors.add(:base, "error message") unless some_condition
end
详情结帐working with errors
。