as per your answer + Evaraldo's one : event.taskable.class.constantize.model_name on polymorphic works
On Feb 10, 12:05 am, Peter Vandenabeele <pe...@vandenabeele.com> wrote: > On Thu, Feb 9, 2012 at 11:38 PM, Erwin <yves_duf...@mac.com> wrote: > > I have a polymorphic class Event > > > class Event < ActiveRecord::Base > > belongs_to :taskable, :polymorphic => true > > > so an event.instance has : event.taskable_type and > > event.taskable_id > > i.e. event[:taskable_type] = "Project" event[:taskable_id] = 2 > > > Is it possible to localize the taskable_type ( "Project") using > > Model.model_name.human ? taskable_type is a string... > > > I tried to get it from the instance , > > event.taskable.model_name.human, but model_name is not an AR instance > > method > > ( NoMethodError: undefined method `human_name' for #<Project...> > > I think I found it ... (taskable is the instance, but model_name needs to > run on the class, so add .class): > > Contact belongs_to :person > > 011:0> contact.person.model_name > NoMethodError: undefined method `model_name' for #<Person:0xaa16a44> > ... > 012:0> contact.person.class.model_name > => "Person" > > I have not tried on polymorphic, but I presume it would work too. > > HTH, > > Peter > > -- > *** Available for a new project *** > > Peter > Vandenabeelehttp://twitter.com/peter_vhttp://rails.vandenabeele.comhttp://coderwall.com/peter_v -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.