Ulubione i polimorficzność

Mam taką tabelę dla ulubionych przedmiotów użytkownika:

[code]class CreateFavorites < ActiveRecord::Migration
def self.up
create_table :favorites do |t|
t.column :user_id, :integer
t.column :favorable_type, :string, :limit => 30
t.column :favorable_id, :integer

  t.timestamps
end

end

def self.down
drop_table :favorites
end
end[/code]
Model Favorite:

class Favorite < ActiveRecord::Base belongs_to :user belongs_to :favorable, :polymorphic => true end
Model użytkownika wygląda tak:

class User < ActiveRecord::Base has_many :favorites end
Jak wywołuję taki kod:

@current_user.favorites.each do |favorite| puts favorite.favorable.class end
to dostają nazwy klas jakie może użytkownik odznaczać sobie jako ulubione np. Car, House. Teraz nie mogę dojść jak zrobić, żeby wypisać ulubione samochody oraz domki w taki sposób:

[code] @current_user.cars.each do |car|
puts car.name
end

@current_user.house.each do |house|
puts house.name
end[/code]
da się to jakoś sprytnie zrobić? Przeglądałem kod acts_as_favorite, ale coś mi nie wychodzi ze zrobieniem tego tak jak wyżej… Czy jedyną możliwością jest zrobienie metod, które będą filtrować @current_user.favorites w poszukiwaniu tego oczekiwanego typu klasy.

Pozdrawiam.

Dzisiaj pojawił się nowy railscast na www.railscasts.com omawiający polimorficzność. Zachęcam do zapoznania się z nim :).

Dzięki, jeszcze nie wiem, czy pomocny, ale dobrze wiedzieć, że jest. :slight_smile: