很抱歉我的初学者问题,但我正在努力学习RoR。在Rails 3.2中,我声明了:
class Project < ActiveRecord::Base
attr_accessible :name, :description
has_many :subprojects
end
class SubProject < ActiveRecord::Base
attr_accessible :id_name, :description, :num_alloc, :project_id
belongs_to :projects
end
如何在视图中显示具有属性id_name, num_alloc(来自SubProject)和name(来自Project)的表
如何进行连接?在控制器中,如果我输入:
@results= SubProject.joins('LEFT OUTER JOIN.......)
this,只返回SubProject属性,对吗?
谢谢
有一种东西叫做动态加载。当您使用连接进行查询并创建对象时,这些关联是预先填充的。例如:
@results = SubProject.joins(:project)
在您的视图或任何其他地方,如果您在subproject中调用项目对象,您将可以直接访问其内容,而无需进行另一个查询。
@results.each do |r|
puts r.project.name # The project is prepopulated from the db
end
如果你不关心性能,你可以找到子项目,并为每一个子项目查询项目。
@results = SubProject.all
@results.each do |r|
puts r.project.name # This will make other query
end