Ruby on rails 呈现查询最佳实践rails 4.0

Ruby on rails 呈现查询最佳实践rails 4.0,ruby-on-rails,activerecord,render,Ruby On Rails,Activerecord,Render,我有一个合同模型,它有一个名为“totalAward”的字段。在我的index.html.erb视图中,我有以下代码: <p> Total Award Amount: <td><%= number_to_currency(Contract.sum('awardAmount')) %></td> </p> 奖励总额: 我相当确定在视图中调用数据库不是最佳做法,但我不确定如何在控制器或模型中以可以在视图中渲染的方式进行调用。有人

我有一个合同模型,它有一个名为“totalAward”的字段。在我的index.html.erb视图中,我有以下代码:

<p> Total Award Amount: <td><%= number_to_currency(Contract.sum('awardAmount')) %></td>     </p>
奖励总额:

我相当确定在视图中调用数据库不是最佳做法,但我不确定如何在控制器或模型中以可以在视图中渲染的方式进行调用。有人能帮我在控制器或模型中如何进行数据库调用吗

谢谢

来自控制器的实例变量(
@contracts
)将允许您访问模型的属性。我相信您想要使用ActiveRecord的方法。以下是如何在您的视图中使用它:

<%= @contracts.sum(:totalAward) %> 


这样,您就不会在视图中查询数据库。但是您可以访问控制器中的实例变量(@contracts),该变量保存所有契约的集合。

进一步到
Wali Ali
,您最好坚持(Rails的基础)。这意味着您需要将数据分配(设置变量)保存在
控制器中,并将数据存储在
模型中

我会使用:

#app/models/contract.rb
类协定
这将允许您执行以下操作:

#app/controllers/contracts_controller.rb
Class ContractsController < ApplicationController
    def index
       @contracts = Contract.all #-> @contracts.total for all
       @contracts = Contract.where(some: value) #-> @contracts.total for these items
    end
end
#app/controllers/contracts_controller.rb
类ContractsController<应用程序控制器
def索引
@合同=Contract.all#->@contracts.total for all
@合同=合同。其中(部分:价值)#->@contracts.total用于这些项目
结束
结束

在控制器的索引操作中有什么?我有:def index@contracts=Contract.all endso
totalAward
Contract
的一个属性。什么是总和?
#app/controllers/contracts_controller.rb
Class ContractsController < ApplicationController
    def index
       @contracts = Contract.all #-> @contracts.total for all
       @contracts = Contract.where(some: value) #-> @contracts.total for these items
    end
end