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.

Reply via email to