2
的第三级我有这些模型:的Rails:总在我的Rails 3.1的应用程序嵌套资源
class Project < ActiveRecord::Base
has_many :tasks
has_many :hours, :through => :tasks
def sum_hours
self.hours.sum(:hours)
end
end
class Task < ActiveRecord::Base
belongs_to :project
has_many :hours
def sum_hours
self.hours.sum(:hours)
end
end
class Hour < ActiveRecord::Base
attr_accessible :hours # column in table
belongs_to :task
end
在projects_controller.rb这样的:
def show
@project = Project.find(params[:id])
@tasks = @project.tasks.includes(:hours)
end
和项目/ show.html。 ERB我用这个:
...
<td>Sum hours: <%= @project.sum_hours %></td>
...
<% for task in @tasks do %>
<tr>
<td><%= task.sum_hours %></td>
</tr>
...
但即使有.includes(:小时)它仍然使用为项目和每个任务分别进行查询。我错过了什么?我在哪里做错?
谢谢,这帮了我很多! – Ryan 2012-11-07 01:02:05