【问题标题】:Figuring Out How To Access Methods弄清楚如何访问方法
【发布时间】:2016-07-01 13:49:30
【问题描述】:

我有一个广告客户模型和一个实验模型。我已经设置了 关联如下:

Advertiser has_many :experiments

Experiment belongs_to :advertisers

实验表有一个标题为“experiment_type”的列,它可以 AOVConversion。我正在尝试展示 特定广告客户(按实验类型)。

我可以成功展示广告客户的所有实验 后续迭代

<% @advertiser.experiments.each do |experiments| %>
 <td><%= experiments.id %></td>
 <td><%= experiments.name %></td>
<% end %>

或者我可以使用以下内容成功显示所有experiment_type 迭代

<% @aov.each do |experiments| %>
 <td><%= experiments.id %></td>
 <td><%= experiments.name %></td>
<% end %>

我想不通的是如何通过以下方式显示实验类型 广告商。我想像

&lt;% @advertiser.aov.each do |experiments| %&gt; 可以,但它给了我 一个

用于#的未定义方法`aov'

我的实验控制器中的 aov 操作是

def set_aov_experiments
    @aov = Experiment.where("experiment_type = ?", "AOV")    
end

任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: ruby-on-rails methods


    【解决方案1】:

    您收到此错误是因为 aov 不是模型实体 Advertiser 的方法。

    如果您想这样使用它,请将其放在您的广告商模型中:

    def aov
      experiments.where(experiment_type: 'AOV')
    end
    

    【讨论】:

    • 我将它添加到 Advertiser 模型中,现在可以毫无错误地调用迭代。 &lt;% @advertiser.aov.each do |experiments| %&gt;。它显示所有 AOV 实验,而不是针对特定广告商。我在这里做错了什么?
    • 对不起,我更新了帖子,现在它只在当前的广告商实验中查询。
    猜你喜欢
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多