简单的Rails问题。我有一个模型Foo,看起来像这样:
class Foo < ActiveRecord::Base
belongs_to :bar
def self.belongs_to(association_id, options = {})
puts "HI"
super
end
end
为什么我在irb中加载Foo
>> Foo
=> Foo(id: integer, bar_id: integer)
>>
我没有看到“HI”(我很确定Rails在加载类时调用belongs_to)?然而,当我输入Foo.belongs_to(“anything_here”)时,我看到:
>> Foo.belongs_to("anything_here")
HI
=> nil
>>
答案 0 :(得分:1)
不完全确定你想要完成什么(看起来有点讨厌!)。
无论哪种方式,定义和呼叫的顺序都很重要:
class Foo < ActiveRecord::Base
def self.belongs_to(association_id, options = {})
puts "HI"
super
end
belongs_to :bar
end