0

을 나열 어떻게 다형성 assocation 있습니다레일 : 다형성 협회는 : 협회

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> 
belongs_to이 방법을 추가 한 이후 user.companiable

def index 
    @users = User.all 
end 

를 수행하여 다른 객체를 직접 액세스 할 수 있도록 당신은, 사용자로부터 회사를 액세서 수

답변

2

및보기에서

<td><% unless user.companiable.nil? %> 
     <%= user.companiable.name %> 
    <% end %></td>