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

问题描述 投票:1回答:3

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

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

我现在想通过标题找到该评论。如果记录被保存,我可以做类似的事情

p.comments.find_by_title('great')

但由于它尚未保存,因此它将返回nil(因为它实际上运行了SQL查询)是否有办法在保存之前找到此记录?

谢谢!

sql ruby-on-rails database ruby-on-rails-3 arel
3个回答
1
投票
great_comment = p.comments.detect{|c| c.title == 'great'}

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

0
投票

写吧:

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

new_comment将是新增加的评论。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.