В моих комментариях есть параметр, называемый total_votes
(составленный из целых чисел).Вот как я упорядочиваю комментарии наиболее проголосовавших, и подача заявки будет выполняться одновременно:
show.rb:
def show
@post = Post.find(params[:id])
@comments = @post.comments.paginate(:page => params[:page],
:per_page => 5).order('total_votes DESC,
created_at DESC')
end
show.html.erb:
<% @comments.map do |comment| %>
<div class="comment-<%= comment.id %>">
<p>
<b>Comment:</b>
<%= comment.content %>
</p>
<p>
<b>Vote:</b>
<span class="vote-count"><%= comment.total_votes %></span>
<div class='voted-user'>
<% comment.votes.each do |vote| %>
<%= link_to vote.user.username, vote.user %>
<% end %>
</div>
</p>
<p>
<b>Commenter</b>
<%= link_to comment.user.username, comment.user %>
</p>
<p>
<b>Link</b>
<%= link_to "Show Post Comment", [@post, comment] %>
</p>
<p>
<b>Vote</b>
<%= link_to "Vote Up", vote_up_path(comment, :votable_type => "Comment"), :remote => true, :class => "vote-up" %><br />
</p>
</div>
<% end %>
<%= will_paginate @comments %>
Я хотел бы создать действие link_to
, чтобы я мог манипулировать этой частью:
@comments = @post.comments.paginate(:page => params[:page],
:per_page => 5).order('THIS_PART')
, чтобы я мог заархивировать что-то подобное:
mysite / posts / 93? Order_by = голосов
и / или (order_by + will_paginate):
mysite / posts /93? Order_by = голоса & страницы = 2
или что-то в этом роде.
Любые предложения о том, как выполнить код в контроллере и просмотреть (Пожалуйста, дайте мне знать, если это нелучший способ сделать это)?