Rails:组合多个查找请求

时间:2010-05-14 08:21:47

标签: ruby-on-rails find

我想做的是这样的事情:

searchid = 4

while searchid != -1

  @a += A.find(searchid)
  @b = B.find(searchid)
  searchid = @b.parentid
end

问题是行

@a += A.find(searchid) 

错误类似于

NoMethodError: undefined method `+' for #<A:0x173f9a0>

那么,如何组合多个“查找”请求?

2 个答案:

答案 0 :(得分:0)

您必须在@a = []之前将+=初始化为数组。

searchid = 4
@a = []
while searchid != -1

  @a += A.find(searchid)
  @b = B.find(searchid)
  searchid = @b.parentid
end

您可以将它们合并为:

searchid = 4
@a = []
while searchid != -1

  @a += A.find(searchid)
  @a += B.find(searchid)
  searchid = @a.last.parentid
end

答案 1 :(得分:0)

让它工作(有帮助)。 做了以下事情:

@a = []

@a << A.find_by_something(something)

似乎有效。 还使用@a.compact!来删除空条目。

感谢所有帮助:)