ruby - Defining method_missing on Active record in rails 4 throws SystemStackError: stack level too deep on attributes -
i upgraded app rails 4.0 , ruby 2.0 i'm having problems understanding why method_missing definitions won't work. i'm pretty sure i'm not doing differently before.
specifically, i'm trying create method lets activerecord object respond call object belongs_to via polymorphic relationship.
here classes:
song.rb
class song < activerecord::base has_many :events, :as => :eventable end event.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 i want able call event.song when eventable_type of event == 'song' issue on self.eventable_type, triggers stack overflow.
what missing here?
it seems though eventable_type method isn't yet defined when method_missing triggers (some methods in rails dynamically defined through method_missing first time call them).
i'd try different means of getting value want; perhaps self.attributes["eventable_type"] work?
Comments
Post a Comment