更改 rails 中帖子的默认顺序
Changing default order of posts in rails
我有一个类似 rails 应用程序的博客,带有 posts。 post 可以按最受欢迎或最新排序。最受欢迎的是默认订单和主页,我想将其更改为最新订单。由于我对 rails 还是很陌生,所以我聘请了一名程序员来完成大部分工作,但我知道这是一个非常简单的修复,我只是不知道要更改什么。我认为我需要在 post_controller 或 post 模型中更改某些内容,但如果您需要查看其他内容,请告诉我,我会提出来的。
post.rb
class Post < ActiveRecord::Base
include UrlHelp
def self.highest_voted
self.order(:cached_votes_down)
end
end
post_controller.rb
def index
@posts = grab_correct_post
end
def grab_correct_post
if params[:sort_by] == "added_on"
@added_on = "sort-active"
Post.all.order("created_at DESC").paginate(page: params[:page], per_page: 7)
else
@most_popular = "sort-active"
Post.all.order(:cached_votes_score =>:desc).paginate(page: params[:page], per_page: 7)
end
如果您查看用于交换排序顺序的选择器并获得为最流行发送的 sort_by 值,那么您可以将 grab_correct_post 更改为以下内容以更改默认值
def grab_correct_post
if params[:sort_by] == "<sort_by_value_for popular>"
@most_popular = "sort-active"
Post.all.order(:cached_votes_score =>:desc).paginate(page: params[:page], per_page: 7)
else
@added_on = "sort-active"
Post.all.order("created_at DESC").paginate(page: params[:page], per_page: 7)
end
end
看来您可以颠倒 grab_correct_post
方法中 if-else 块的顺序:
def grab_correct_post
if params[:sort_by] == "most_popular"
@most_popular = "sort-active"
Post.all.order(:cached_votes_score =>:desc).paginate(page: params[:page], per_page: 7)
else
@added_on = "sort-active"
Post.all.order("created_at DESC").paginate(page: params[:page], per_page: 7)
end
end
请注意,我只是猜测 :sort_by
参数值应该是多少,以便按受欢迎程度排序,因此请务必将 "most_popular"
更改为您实际使用的值。
我有一个类似 rails 应用程序的博客,带有 posts。 post 可以按最受欢迎或最新排序。最受欢迎的是默认订单和主页,我想将其更改为最新订单。由于我对 rails 还是很陌生,所以我聘请了一名程序员来完成大部分工作,但我知道这是一个非常简单的修复,我只是不知道要更改什么。我认为我需要在 post_controller 或 post 模型中更改某些内容,但如果您需要查看其他内容,请告诉我,我会提出来的。
post.rb
class Post < ActiveRecord::Base
include UrlHelp
def self.highest_voted
self.order(:cached_votes_down)
end
end
post_controller.rb
def index
@posts = grab_correct_post
end
def grab_correct_post
if params[:sort_by] == "added_on"
@added_on = "sort-active"
Post.all.order("created_at DESC").paginate(page: params[:page], per_page: 7)
else
@most_popular = "sort-active"
Post.all.order(:cached_votes_score =>:desc).paginate(page: params[:page], per_page: 7)
end
如果您查看用于交换排序顺序的选择器并获得为最流行发送的 sort_by 值,那么您可以将 grab_correct_post 更改为以下内容以更改默认值
def grab_correct_post
if params[:sort_by] == "<sort_by_value_for popular>"
@most_popular = "sort-active"
Post.all.order(:cached_votes_score =>:desc).paginate(page: params[:page], per_page: 7)
else
@added_on = "sort-active"
Post.all.order("created_at DESC").paginate(page: params[:page], per_page: 7)
end
end
看来您可以颠倒 grab_correct_post
方法中 if-else 块的顺序:
def grab_correct_post
if params[:sort_by] == "most_popular"
@most_popular = "sort-active"
Post.all.order(:cached_votes_score =>:desc).paginate(page: params[:page], per_page: 7)
else
@added_on = "sort-active"
Post.all.order("created_at DESC").paginate(page: params[:page], per_page: 7)
end
end
请注意,我只是猜测 :sort_by
参数值应该是多少,以便按受欢迎程度排序,因此请务必将 "most_popular"
更改为您实际使用的值。