Создание действия link_to для параметров will_paginate + order_by (Rails) - PullRequest
0 голосов
/ 09 февраля 2012

В моих комментариях есть параметр, называемый 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

или что-то в этом роде.

Любые предложения о том, как выполнить код в контроллере и просмотреть (Пожалуйста, дайте мне знать, если это нелучший способ сделать это)?

1 Ответ

1 голос
/ 09 февраля 2012

РЕДАКТИРОВАТЬ:

Это Railscasts это то, что вы хотите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...