2016-01-25 41 views
0

我不斷收到Rails的助手枚舉來查看未初始化的常數問題

uninitialized constant ActionView::CompiledTemplates::BLAHBLAH1 

當我使用BLAHBLAH1在再培訓局的文件,它不會工作,但如果我與助手名BlahBlahHelper::BLAHBLAH1前綴是它的工作原理。 助手是blahblah_helper.erb與內容:

module BlahBlahHelper 
    BLAHBLAH1 = 0 
end 

視圖的文件名是blah_blah.html.erb。我知道我有適當的命名約定,因爲我已經測試過了。

幫助器在視圖的子目錄中會成爲問題嗎?

有沒有辦法讓它工作,而不必爲助手名稱加前綴?

+0

@AndreyDeineko我得到'未初始化常量BLAHBLAH1' – Vagish

+0

什麼是控制器名稱?除非它是'BlahBlahsController',並且您正在使用預期行爲的特定Rails版本! –

+0

@MichalSzyndel我正在使用'reports_controller.rb',但呈現視圖文件。錯誤在視圖中發生。 – Vagish

回答

2

輔助模塊只有在與控制器名稱匹配的名稱時纔會自動加載。

所以你的情況,你有兩個選擇:

1)

include BlahBlahHelper # in controller, same as `helper BlahBlahHelper` 

2)

重命名控制器是BlahBlahController

好吧,因爲edikgat試圖指出評論這裏的問題是常量的決議。

要使用常量,必須使用全名引用它,因爲模塊中不包含常量,只有它是方法。

通過​​閱讀關於在Rails中加載的常量。

+0

這就是答案。 – Pavan

+0

嘗試編號1,但它仍然給出相同的錯誤。 – Vagish

+1

絕對沒有。 所有助手都包含在所有視圖類 你可以做「self.class.ancestors」在你看來肯定 – edikgat

0

發生這種情況是因爲像其他模塊一樣的助手僅包含了查看其方法的視圖。有沒有辦法包括常量

相關問題