Рельсы рвутся под нагрузку и условия - PullRequest
0 голосов
/ 11 октября 2011

У меня настроены следующие ассоциации

class bookinghdr
  belongs_to :agent
end

class bookingitem
  belongs_to :bookinghdr, :include => agent
end

Так что я ожидал, что смогу сделать следующее:

named_scope :prepay, :include=>["bookinghdr"], :conditions => ["bookinghdr.agent.agenttype = 'PP'"]

и в моем контроллере сделаем:

b = Bookingitem.prepay

Но это дает мне ActiveRecord :: StatementInvalid: Mysql :: Error: Неизвестный столбец 'bookinghdr.agent.agenttype'

Однако, если я не включаю условие условия, то я получаю набор записейна котором я могу сделать:

b = Bookingitem.prepay
b[0].bookinghdr.agent.agenttype 

без каких-либо ошибок!

Я не хочу получать все записи, а затем перебирать их, чтобы найти те, чей агент имеет'PP @ flag.Я надеялся, что AR сделает это для меня.

У кого-нибудь есть идеи, как этого добиться?

1 Ответ

1 голос
/ 23 февраля 2012

Ваш вопрос показывает, что вы еще не полностью поняли, как работают ассоциации и именованные области.Поскольку из вашего вопроса я не могу сказать, какие части не ясны, я предлагаю вам прочитать руководство по основам ассоциации по номеру http://guides.rubyonrails.org/v2.3.11/association_basics.html..После того, как вы прочитали руководство, все должно иметь смысл.

...