私はポリモーフィックな関連付けを持っています:
class User < ActiveRecord::Base
belongs_to :companiable, :polymorphic => true
end
class Agency < ActiveRecord::Base
has_many :users, :as => :companiable
end
class Publisher < ActiveRecord::Base
has_many :users, :as => :companiable
end
そして今、すべてのユーザーを一覧表示し、彼らが所属する会社を表示したいと考えています。これよりもエレガントなソリューションはありますか (あることを強く願っています)?
def index
@publishers = Publisher.all
@agencies = Agency.all
@users = User.all
end
...
<td><% unless user.companiable_id.nil? %>
<% if user.companiable_type == "Agency" %>
<%= @agencies[user.companiable_id].name %>
<% elsif user.companiable_type == "Publisher"%>
<%= @publishers[user.companiable_id].name %>
<% end %>
<% end %>
</td>