【问题标题】:Problem with one-to-many relationship with Single Table Inheritance (Rails)单表继承(Rai​​ls)的一对多关系问题
【发布时间】:2009-11-12 16:47:46
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails ruby polymorphism relationship sti


    【解决方案1】:

    我想你想要的是:

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

    【讨论】:

    • 它有效。看来我必须将整个子对象添加到关系中。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 2017-07-01
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    相关资源
    最近更新 更多