我有一个用户可以添加收藏夹的页面。现在,页面将其帖子排序为收藏夹,但按照.order(created_at :: desc)对Post数据库created_at字段进行排序。如何更改此选项以使用Vote表及其created_at frield。
@posts = Post.where(id: current_user.find_voted_items.map(&:id)).order(created_at: :desc).paginate(:page => params[:page], :per_page => 36)
以下是相关架构
create_table "votes", force: :cascade do |t|
t.integer "votable_id"
t.string "votable_type"
t.integer "voter_id"
t.string "voter_type"
t.boolean "vote_flag"
t.string "vote_scope"
t.integer "vote_weight"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "posts", force: :cascade do |t|
t.string "soundcloud"
t.string "title"
t.string "artist"
t.string "audio"
t.string "image"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "download"
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
end
谢谢
答案 0 :(得分:0)
如果要返回帖子,使用posts数据库更有意义。如果你想使用投票数据库返回一个帖子的所有投票,你可以尝试这样的事情:
@votes = Vote.where(votable_id: some_post.id).order('created_at DESC')
但我不确定我是否理解您想从投票数据库中返回的内容。