在不同页面上的不同订单的帖子

时间:2016-07-11 04:01:32

标签: ruby-on-rails

所以我要做的是能够有一个显示最新帖子的链接和一个显示最喜欢或最受欢迎的帖子的链接等等。我知道如何通过进入我的帖子控制器来改变我的整个应用程序,例如

def index
 @posts = Post.sort_by_popularity('DESC')
end

按照大多数观看次数对我的帖子进行排序。但它再次为我的整个应用程序做到了。再次,我希望有链接,我的帖子排序不同的那些页面。有人可以帮我解决这个问题。我顺便使用Rails 4

这是我尝试但仍然没有改变

def index
@posts = Post.all.order("created_at DESC")
 if params[:sort_param] == "views"
  @posts = Post.sort_by_popularity('DESC')

  elsif params[:sort_param] == "likes"
  @posts = Post.all.order(:cached_votes_up => :desc)
 end
end

我的观点中的链接

<li><%= link_to 'like', posts_path(:sort_param => "Most likes")%></li>
<li><%= link_to 'views', posts_path(:sort_param => "Most views")%></li>

1 个答案:

答案 0 :(得分:1)

您可以将parameter传递给index方法进行排序:

def index
  if params[:sort_param] == "Like"
     // do something
  elsif params[:sort_param] == "date"
     // do something
  else
     @posts = Post.all.order("created_at DESC")
  end
end

在视图中

%h3 Sort by:
= link_to 'Like', posts_path(:sort_param => "like")
%br
= link_to 'Date Updated', posts_path(:sort_param => "date")