Rails ActiveRecord.如何做一个连接



很抱歉我的初学者问题,但我正在努力学习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

相关内容

  • 没有找到相关文章

最新更新