On Thu, Feb 9, 2012 at 11:38 PM, Erwin <[email protected]> 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 Vandenabeele
http://twitter.com/peter_v
http://rails.vandenabeele.com
http://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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to