如何根据其他表中的条目验证一个表中的列?
我用来验证表“Preperiod”的列“:product_id”的条目存在于“Product”表的“id”列中的代码是
validate :product_id_exists
def product_id_exists
if Product.find_by_id(:product_id)==nil
errors.add(:base, "Product must be defined")
end
end
但是现在即使product_id正确,我也会收到错误。我做错了什么?
我使用ruby 1.9.2和rails 3.0.9
答案 0 :(得分:1)
Product.find_by_id('here you should specify value of id field ... ') == nil
所以你的代码应该是这样的:
Product.find_by_id(product_id) == nil
或:
Product.find_by_id(self.product_id) == nil
或:
Product.find_by_id(self[:product_id]) == nil