所以我在这里有一个社交书签式的设置。4 个表:帖子、用户、评论和投票。主页只是指向帖子模型的索引页面并在Post.all
数组上运行一个循环并显示一些基本信息:title
, upvotes
- downvotes
(我称它为帖子的“分数”)。
现在我需要做的是通过它们的分数除以它们的相对创建时间(自页面加载以来创建这篇文章以来的秒数?)在模型中排序这些帖子(我猜)。Railscreated_at
在我的帖子对象中给了我一个列,我有一个投票表,如下所示:
帖子模型
class Post < ActiveRecord::Base
attr_accessible :id, :title, :url, :user_id, :comment_count, :agreement
has_many :votes
has_many :comments
belongs_to :user
end
投票模型
class Vote < ActiveRecord::Base
attr_accessible :direction, :post_id, :vote_type, :user_id
belongs_to :user
belongs_to :post
belongs_to :comment
end
post 模型中的 ID 对应于投票模型中的 post_id。
:direction
是一个布尔值。0
与赞成投票和反对投票1
相关。Post_ID 是投票的帖子的 ID。
我应该如何排序帖子,以便他们在主页上的位置由他们的创建时间和他们的赞成票 - 反对票决定?
def index
@posts = Post.join(:votes).order(<???>)
end
ETA:@shweta 在加入帖子和投票表方面走在了正确的轨道上。但是,他的答案的选择部分不起作用。