当前位置:  开发笔记 > 后端 > 正文

Rails:为循环的每次迭代从表中获取数据

如何解决《Rails:为循环的每次迭代从表中获取数据》经验,为你挑选了1个好方法。

我有一个循环(对于@dataset中的项目),我想在每次迭代中从另一个表中获取不同的数据,并进行一些将在视图中打印的操作.我无法从循环中使用的数据集中获取此数据.

我怎么能根据MVC做到这一点?我可以将代码放入循环中,在视图中,但我认为这很糟糕.

我必须使用助手才能执行此操作,并从视图中调用该函数吗?

先感谢您,

- ARemesal



1> Orion Edward..:

如果您有一个表,并且想要从另一个表中获取数据,通常这是一种has_many关系的情况.例如,我们有@people(Person模型),每个人都在has_many地址(Address模型).在这些情况下,最好的办法就是这样做

# Controller
@people = Person.find(:all, :include => :addresses)
...

# View
@people.each do |p|
  p.addresses.each do |address|
    ...

如果您的数据不仅仅是普通的数据库表(也许是从Web服务等获得),那么一件好事就是提前在控制器中构建所有数据,然后将其传递给视图.像这样的东西

# Controller
@people = Person.find(:all)
@people.each do |p|
  # attach loaded data to the person object in controller
  p.addresses = Address.load_from_somewhere_by_name(p.name)
...

这样,视图代码保持干净,如下所示:

# View
@people.each do |p|
  p.addresses.each do |address|
    ...

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有