您不妨考慮一個MVC的做法,把邏輯計算在模型中並從控制器調用它。
以這種方式,我會從模型開始。
我會考慮用戶,鏈接和投票模型。投票將是連接表,將需要遷移,將兩個外鍵添加到它(user_id
和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個鏈接)
@link = Link.find(params[:id])
在Show View我會:
@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 %>
這是完美的,謝謝。它總是看起來很容易,一旦你看到答案... :) – umezo