我有这样的课:
class Project < ActiveRecord::Base
has_many :versions, :order => :position
end
在控制器操作中,我需要查询项目的版本。我有项目 ID。我可以简单地做一个
versions = Project.find(params[:project_id]).versions
但是,这将首先对“项目”表进行查询,这在我的情况下是不必要的。我可以将其更改为
versions = Version.find( :conditions => { :project_id => params[:project_id } )
(或使用具有相同结果的动态查找器)
这不使用关联的附加属性(在本例中为 ":order => :position"),因此如果我想获得与同一示例中完全相同的结果,我将不得不编写:
versions = Version.find( :conditions => { :project_id => params[:project_id },
:order => :position )
在这里我不再干了,因为我在重复一些已经在模型中定义的东西(“:order”选项)。
有没有办法使用和遵循模型中定义的关联而无需加载父对象?我目前仍在使用 Rails 2.3.8。