MVCアプローチを検討し、それを計算するロジックをモデルに配置し、コントローラーから呼び出すことをお勧めします。
このようにして、モデルから始めます。
ユーザー、リンク、投票のモデルを検討します。user_id
投票は結合テーブルになり、2つの外部キー(およびlink_id
)を追加する移行が必要になります。
User
has_many votes
has_many :links, :through => :votes
Link
has_many_votes
has_many_users, :through => :votes
def votes_by_user
user.votes
end
Vote
belongs_to :user
belongs_to :link
次に、リンクコントローラーで
(1リンクのshowメソッドで)
@link = Link.find(params[:id])
ショービューでは、次のようになります。
@link.users.each do |one_user|
link_to one_user, "#{link.user.name}(#{link.votes_by_user(one_user)}")
end
リンクのインデックスメソッドの場合、それまでの反復ですべてをラップします。たとえば、
(インデックス方式)
@links=Link.all
(見る)
<%- @links.each do |one_link| %>
<%- one_link.users.each do |one_user| %>
<%= link_to one_user, "#{link.user.name}(#{link.votes_by_user(one_user)}") %>
<%- end %>
<%- end %>