Ruby on rails 搜索未保存的对象

Ruby on rails 搜索未保存的对象,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,如果我有一组尚未在数据库中的对象,如何查找它们 我的情况是这样的: @base_object = BaseObject.new @tiny_little_object = @base_object.tiny_little_objects.build @tiny_little_object.name = "Jake" @tiny_little_object = @base_object.tiny_little_objects.build @tiny_little_object.name = "Fi

如果我有一组尚未在数据库中的对象,如何查找它们

我的情况是这样的:

@base_object = BaseObject.new
@tiny_little_object = @base_object.tiny_little_objects.build
@tiny_little_object.name = "Jake"
@tiny_little_object = @base_object.tiny_little_objects.build
@tiny_little_object.name = "Finn"
所以我有一堆初始化的对象,没有什么特别的。现在我希望能够做到这一点:

#### Yes, rails 3 here, find_by_name    
@base_object.tiny_little_objects.find_by_name("Jake")       
但我得到的只是一个空数组。我该如何解决这个问题,除了迭代和比较之外,还有什么优雅的方法吗?

你可以使用-毕竟这些都在一个集合中:

jakes = @base_object.tiny_little_objects.select { | object | object.name == 'Jake' }

find_by_name
搜索数据库,因此它永远不会返回尚未保存的记录。但是,使用build时,对象存储在内存中,与基本对象关联。所以你应该能找到一个

@base_object.tiny_little_objects.detect{|obj| obj.name == "Jake"}

这是测试用的?如果你对你想做什么有点具体,那么回答你的问题可能会有帮助。你的问题散发出糟糕的代码设计的味道。为什么要这样做?我只需要在保存这些对象之前处理它们,用“检测”回答很明显,我觉得我有点累:)