显示rails中的第一条记录

时间:2009-08-28 15:27:13

标签: ruby-on-rails

假设我有评论模型和帖子模型,

我可以在视图中使用哪些代码来显示要关联的帖子的第一条评论?

3 个答案:

答案 0 :(得分:4)

假设:

post = Post.find(params[:id])

和帖子模型包含:

has_many :comments

然后你可以:

comments = post.comments
first_comment = comments.first

答案 1 :(得分:3)

Post.find(123).comments.first

其中123是您的帖子ID。

答案 2 :(得分:1)

@ post.comments.first通常会有效。 (@post应该在你的控制器方法中设置)

然而,很高兴认识到'first'在协会中首先意味着,通常按id排序。由于ids自动增量,这恰好与“第一次添加”或“最早的评论”相同。但它不一定是。

如果你的评论关联指定了不同的排序,那么首先会使用这个,例如:如果您的关联看起来像这样:

has_many :comments, :order=>'rating desc'

然后(假设“评级”字段设置为某种值,表示平均评分)post.comments.first会给出评分最高的评论,而不是第一个要添加的评论。

在这种情况下,假设您的评论模型有时间戳,那么您需要执行类似

的操作
@post.comments.find(:first, :order=>'created_at asc')