0

次の関連付けを設定しています

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: Unknown column 'bookinghdr.agent.agenttype' を与えます

ただし、条件句を含めない場合は、実行できるレコードセットを取得します。

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

エラーなしで!

すべてのレコードを取得してから、それらを繰り返し処理して、エージェントに 'PP@ フラグがあるレコードを見つける必要はありません。ARがそれをしてくれることを望んでいました。

これを達成する方法について誰かアイデアがありますか?

4

1 に答える 1

1

あなたの質問は、関連付けと名前付きスコープがどのように機能するかをまだ完全に理解していないことを示しています。あなたの質問からは、どの部分が明確でないか判断できないので、http://guides.rubyonrails.org/v2.3.11/association_basics.htmlにある Association Basics ガイドを読むことをお勧めします。これにより、実装したい概念について理解を深めることができます。ガイドを読んだら、すべてが理解できるはずです。

于 2012-02-22T22:20:34.613 に答える