首先让我解释一个例子:
在模型中:
class Product < ActiveRecord::Base has_many :line_items def income self.line_items.sum(:price) end def cost self.line_items.sum(:cost) end def profit self.income - self.cost end end
然后在控制器中:
def show @products = Product.all end
在视图中:
<% @products.each do |product| %> Product Name: <%= product.name %> Product Income: <%= product.income %> Product Cost: <%= product.cost %> Product Profit: <%= product.profit %> <% end %>
从视图中调用模型方法是一种好习惯吗?
当我搜索它时,我发现许多人说从调用模型方法或从视图访问数据库不是一个好习惯.
而另一方面,其他一些人说不调用类方法或任何方法从视图更新数据库,但您可以访问任何只检索数据的方法.
那么,这段代码是一个好习惯吗?
只要调用不会改变数据,从视图中调用对象方法/属性就完全没问题了.我的意思是,给读者/读者打电话.不好的做法是调用/调用更新/删除数据的方法.不要打电话给安装人员.
此外,如果涉及任何复杂的计算,请求助手.