引用属于属于属于协会的协会
-
30-09-2019 - |
题
我有以下在Rails控制台中使用的关系,但是当我运行网站时,我做错了什么?
class C < ActiveRecord::Base
belongs_to :b
end
class B < ActiveRecord::Base
belongs_to :a
has_many :c
def title
a.title
end
end
表C有B和B的外键,B和B有一个外键。
这在铁轨控制台中起作用。
c = C.find(12)
c.b.title
但是当我运行网站时,它不起作用。
这是我收到的错误
NoMethodError (undefined method `title' for #<ActiveRecord::Associations::BelongsToAssociation:0x104feb5a0>):
解决方案 3
我必须将B类标题方法变成类方法以使其工作。
其他提示
而不是定义这样做的方法,而是 delegate
呢在 app/models/c.rb
:
delegate :title, :to => :b
然后进 app/models/b.rb
:
delegate :title, :to => :a
has_one(Assioce_id,options = {})指定与另一类的一对一关联。仅当其他类包含外键时,才应使用此方法。如果当前类包含外键,则应使用ander_to代替。另请参见ActivereCord :: coopsiations :: ClassMethods关于何时使用has_one和何时使用的概述。
不隶属于 StackOverflow