【发布时间】:2014-08-28 01:32:51
【问题描述】:
我已经为控制器中的查询准备了一堆对象。我将这些对象传递给要过滤的方法,因为在同一个控制器的多个操作中应用了相同的过滤器。
def some_action
foos = Foo.where(nil)
filter_foos(foos)
stuff
end
def some_other_action
foos = Foo.where(nil)
filter_foos(foos)
other_stuff
end
def filter_objects(objects)
objects = objects.where(:bar => "baz")
end
然而,调用 filter_objects 似乎并没有改变 foos.此外,当我向 some_action 发起控制器请求时,它甚至不会出现在我的查询中。在我的过滤方法中将raise objects.length.inspect 放在objects = objects.where 的任一侧表明objects 的长度保持不变。
我认为我对对象或查询在 Ruby/Rails 中的工作方式存在某种根本性的误解。有人可以引导我朝着正确的方向前进吗?
【问题讨论】:
标签: ruby-on-rails ruby activerecord