我最近将我的应用程序升级到 rails 4.0 和 ruby 2.0 我无法理解为什么我的method_missing
定义不起作用。我很确定我没有做任何与以前不同的事情。
belongs_to
具体来说,我正在尝试创建一个方法,让 ActiveRecord 对象通过多态关系响应对它的对象的调用。
这是我的课程:
歌曲.rb
class Song < ActiveRecord::Base
has_many :events, :as => :eventable
end
事件.rb
class Event < ActiveRecord::Base
belongs_to :eventable, :polymorphic => true
def method_missing(meth, *args, &block)
if meth.to_s == self.eventable_type
self.eventable
else
super
end
end
end
我希望能够event.song
在 eventable_type 的 event == 'Song' 时调用问题出在 上self.eventable_type
,这会触发堆栈溢出。
我在这里想念什么?