我对 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
,但这不是我想做的。请帮我解决这个问题。提前致谢。