【发布时间】:2013-04-18 16:29:00
【问题描述】:
我最近将我的应用升级到 rails 4.0 和 ruby 2.0
我无法理解为什么我的 method_missing 定义不起作用。我很确定我没有做任何与以前不同的事情。
具体来说,我正在尝试创建一个方法,让 ActiveRecord 对象通过多态关系响应对它belongs_to 的对象的调用。
这是我的课程:
歌曲.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
当 eventable_type == 'Song' 时,我希望能够调用 event.song
问题出在self.eventable_type 上,它会触发堆栈溢出。
我在这里错过了什么?
【问题讨论】:
标签: ruby ruby-on-rails-4 method-missing