2015-07-01 65 views
-1

叫我的控制器爲張貼我有公告時這樣的:Rails的未定義的方法在控制器

@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 I內有這些方法來設置主對象的屬性:

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 

這是怎麼回事呢?

+0

您已經創建了一個變量'@ master_settings',但是使用了另一個-' @ master' – Santhosh

回答

0

您已將設置加載到@master_settings,但試圖訪問@master.get_alias_email@master實例變量是nil

+0

這裏是它如何在配置加載器幫助器中設置的: – Jenny

+0

doc.elements.each(「DEFINITIONS/MAILGUN_THINGS」){| element | master.set_alias_email(element.attributes [「ALIAS_EMAIL」]) } – Jenny

相關問題