Как проверить, существует ли соответствующая запись в другой таблице - PullRequest
3 голосов
/ 05 февраля 2012

Как проверить столбец в одной таблице по записям в других таблицах?

Код, который я использовал для проверки того, что запись для столбца ": product_id" таблицы "Preperiod" существует в столбце "id" таблицы "Product", равна

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 и рельсы 3.0.9

1 Ответ

1 голос
/ 05 февраля 2012
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...