如何在Rails中找到尚未保存的记录?

时间:2011-05-31 09:19:46

标签: sql ruby-on-rails database ruby-on-rails-3 arel

假设我有一条名为Post的记录,其中有很多评论。 现在我运行以下代码:

p = Post.new
p.comments.build(:title => 'great')

我现在想通过标题找到该评论。 如果记录已保存,我可以执行类似

的操作
p.comments.find_by_title('great')

但是因为它还没有保存,所以会返回nil(因为它实际上运行了一个SQL查询) 有没有办法在保存之前找到这条记录?

谢谢!

3 个答案:

答案 0 :(得分:2)

comment = p.comments.build(:title => "great")

答案 1 :(得分:1)

great_comment = p.comments.detect{|c| c.title == 'great'}

答案 2 :(得分:0)

只需写下:

new_comment = p.comments.build(:title => 'great')

new_comment将是新添加的评论。

或者,您可以执行以下操作:

new_comments = p.comments.select{|x| x.new_record?}

会给你一个包含所有未保存注释的数组。