Неизвестная ошибка столбца с ассоциацией has_one и объединением в именованной области - PullRequest
1 голос
/ 16 ноября 2010

У меня есть модель продукта и payment_notification со следующей ассоциацией

class Product < ActiveRecord::Base
  has_one :payment_notification
end

class PaymentNotification < ActiveRecord::Base
  belongs_to :product
end

Я настраиваю именованную область действия, которая должна извлекать все продукты, чей связанный атрибут payment_notification имеет статус завершен.У меня сложилось впечатление, что это должно работать в моей модели продукта:

scope :completed, joins(:payment_notification).where(:payment_notification => { :status => 'Completed' })

Но это приводит к следующей ошибке:

Error: Mysql::Error: Unknown column 'payment_notification.status' in 'where clause': SELECT     `products`.* FROM       `items`  INNER JOIN `payment_notifications` ON `payment_notifications`.`product_id` = `productss`.`id` WHERE     (`payment_notification`.`status` = 'Completed')

Может кто-нибудь помочь?

1 Ответ

6 голосов
/ 16 ноября 2010

Попробуйте это:

scope :completed, joins(:payment_notification).where(:payment_notifications => 
                    { :status => 'Completed' })

Обратите внимание на множественное число: payment_notifications.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...