我希望连接树表并访问所有表(而不仅仅是一个表)中的数据。
这三个表称为:页面、文本、图像。
我试过了,但没有用:
@texts = Page.joins([:texts, :images]).where(['pages.id = ?', @page])主要内容是has_many文本和图像的页面。我想做一个查询,并在一个查询中从所有这些查询中获取数据。这在Rails 3中是怎么可能的?我在任何地方都找不到一个很好的例子,甚至在官方指南上也找不到。
更新
之所以这样做而不是@page.texts和@page.images,是因为我那时只能在“块”中打印它们。我想在印刷时把文字和图片混在一起。
发布于 2011-05-20 03:39:38
也许您可以创建一个新的“page元素”的文本和图像子类,这样您就可以在页面元素和页面之间建立一种关系。
另一方面,您可以使用Page.join(:texts).select('texts.*')并检索texts表中的列作为Page的虚拟列(您可以有一个Page,其中只有其他表字段的虚拟列,因此这个解决方案可能会变得脏)。
发布于 2010-12-12 00:36:41
有几件事:
http://www.railway.at/articles/2008/04/24/database-agnostic-database-ignorant/
@images= @page.images与@texts = @page.texts
编辑:这个怎么样?
@pages = Page.all(:include => [:texts, :images])
@pages.sort!{|a,b| a.texts.count <=> b.texts.count}文档:http://ruby-doc.org/core/classes/Array.html#M002186
发布于 2010-12-12 00:27:58
这是值得一读的,并将有助于解决您的问题:
http://guides.rubyonrails.org/association_basics.html
https://stackoverflow.com/questions/4419732
复制相似问题