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 回答