1

我想添加实例方法(或类),但不断得到未定义的方法错误。

网站已关联报告,具有价值。我需要得到这个值。

在我的观点中,我想如何称呼它:

 <%websites.each do |website|%>
   //and use website.amount here

这是我来自 WebsiteController 的代码(我知道此代码用于类方法):

  def self.amount
      self.performance_report.conversions
  end

我不知道如何正确地制作它,它应该是类方法还是实例方法,它应该是怎样的?

4

2 回答 2

2

您应该在模型中添加该方法,而不是在控制器中。这是一个实例方法,所以它应该是def amount

class Website < ActiveRecord::Base
  def amount
    self.performance_report.conversions
  end
end

有了这个,您可以在您的视图中执行以下操作:

<% websites.each do |website| %>
  <%= website.amount %>
<% end %>
于 2012-07-26T12:18:35.370 回答
0

Website.find() 返回一个网站实例。

如果一个网站有一个performance_report,并且PerformanceRecord有一个字段conversions,

 Website.find(38).performance_report.conversions

应该在不定义任何方法的情况下工作。如果这不能按预期工作,您应该检查您的关联定义。在 Controller 上定义类方法不会有任何效果。

于 2012-07-26T11:10:27.373 回答