Rails在控制器中调用时未定义的方法

时间:2015-07-01 15:07:42

标签: ruby-on-rails ruby mailer

在我发布的公告控制器中,我有这个:

 @master_settings = load_master_settings(Rails.root)
  BulletinMailer.bulletin_email(params[:bulletin][:attachment].path, @master.get_alias_email).deliver

主对象是从Datasources.xml文件设置的,在配置加载器文件中,它使用以下命令设置:

doc.elements.each("DEFINITIONS/MAILGUN_THINGS") {|element|
  master.set_alias_email(element.attributes["ALIAS_EMAIL"])
}

然后在application_helper.rb中我有这些方法来设置主对象的属性:

def set_alias_email(val)
  @alias_email = val
end

def get_alias_email
  @alias_email
end

当我尝试发送邮件并将别名电子邮件直接放入bulletin_mailer.rb文件时,它可以工作,但是当我尝试传入对主对象的alias_email属性的调用时,邮件发送但未到达我的收件箱向我显示某些内容未被正确存储或调用。

我得到的错误是:

未定义的方法`get_alias_email'为零:NilClass在该行说:

BulletinMailer.bulletin_email(params[:bulletin][:attachment].path, @master.get_alias_email).deliver

那是怎么回事?

1 个答案:

答案 0 :(得分:0)

您已将设置加载到@master_settings,但正在尝试访问@master.get_alias_email@master实例变量为nil