新手问题 在 controller 里不能执行下面的程序,请教

zealinux · 2013年07月18日 · 最后由 zealinux 回复于 2013年07月18日 · 2085 次阅读
(1..8).each do |n|
  @foor#{n} = Foor.find(n)
end

@foor1 肯定不行。

怎样改呢?

(1..8).each do |n|
  instance_variable_set("@foor#{n}", Foor.find(n))
end

@yesmeck 太感谢了,可用了。 一直以为要用到 eval 这类东西呢。

@yesmeck 借一句:

如何在 view 里调用 each 里,调用@foor#{n} 这个? 难道有个 instance_variable_get ?

这个需求真心蛋痛啊 到 1-8 用的时候 需要 8 条 select

@foors = Foor.find((1..8).to_a)

撸主 你用 @foors = Foor.where(id: 1..8) view 里面 @foors[0]..@foors[7]表示不行么...

#6 楼 @zj0713001 我就喜欢这样搞。。

楼主的执行 8 次查询,这个就是一个问题,可以如 6 楼说的查出来再对结果作处理。

现在一切从简了。 主要是之前每一个 foor 都有不同的东西在里面。 比如特色的图案啊。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号