假设你有这样的案例
class Artist < ActiveRecord::Base
has_many :albums
belongs_to :record_label
def albums
return 5
end
end
是否可以在不使用艺术家#专辑的情况下访问专辑关系,因为它已被覆盖?
这可能发生在mixins或其他随机情况下,它对测试大多有用。然后你可以说艺术家#专辑实际上是与专辑的关系
答案 0 :(得分:1)
使用association
,并检索其范围:
a = Artist.first
a.association(:albums).scoped
请注意,association
没有记录,也没有记录它返回的对象(ActiveRecord::Associations::Association
),这意味着scoped
也没有记录。
答案 1 :(得分:0)
请问 - 你为什么要覆盖#albums
?这有违反最低惊喜原则的缺点 - 每个人都希望#albums
只是为了返回艺术家的专辑。
否则,我只会通过Album.where(artist_id: artist.id)
访问它们。