单表继承的一对多关系问题 (Rails)

发布于 2024-08-11 11:07:00 字数 675 浏览 5 评论 0原文

我对 STI 和 ActiveRecord 中的关系有疑问。我想我错过了类方法中的一些内容,但我不确定。下面是我的模型:

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 破解它,但事实并非如此我想做。 请帮我解决这个问题。提前致谢。

I have problem with STI and relationship in ActiveRecord. I think I missed something in the class methods, but I don't know for sure. Below is my models:

class User < ActiveRecord::Base
  has_many :advertisements
end

class Advertisement < ActiveRecord::Base
  belongs_to :user
end

class FreeAdvertisement < Advertisement
end

class PaidAdvertisement < Advertisement
end

Now I want to find all FreeAdvertisement under certain user, e.g:

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

It gives error:

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

I can hack it by using u.advertisements.find :all, :conditions, but that's not that I want to do.
Please help me to solve this problem. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请叫√我孤独 2024-08-18 11:07:00

我想你想要的是:

class User < ActiveRecord::Base
  has_many :free_advertisements
  has_many :paid_advertisements
end

I think what you want is:

class User < ActiveRecord::Base
  has_many :free_advertisements
  has_many :paid_advertisements
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文