3

ActiveRecord の STI と関係に問題があります。クラスメソッドで何かを見逃したと思いますが、よくわかりません。以下は私のモデルです:

class User < ActiveRecord::Base
  has_many :advertisements
end

class Advertisement < ActiveRecord::Base
  belongs_to :user
end

class FreeAdvertisement < Advertisement
end

class PaidAdvertisement < Advertisement
end

今、特定のユーザーの下にあるすべての FreeAdvertisement を見つけたいと思います。

u = User.find_by_username('myself')
@freebies = u.free_advertisements.all

エラーが発生します:

undefined method `free_advertisements' for #<User:0x2360f18>

を使ってハックすることはできますu.advertisements.find :all, :conditionsが、それは私がやりたいことではありません。この問題を解決するのを手伝ってください。前もって感謝します。

4

1 に答える 1

4

あなたが望むのは次のとおりだと思います:

class User < ActiveRecord::Base
  has_many :free_advertisements
  has_many :paid_advertisements
end
于 2009-11-12T23:01:44.260 に答える