如何验证是否存在其他表中的通信条目

时间:2012-02-05 09:07:28

标签: ruby-on-rails ruby validation

如何根据其他表中的条目验证一个表中的列?

我用来验证表“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

1 个答案:

答案 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