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