2012-03-27 48 views
1

您好我有一個輔助方法,它返回一個字符串,我需要在每個視圖上使用它。 我想這個方法添加到ApplicationHelper在視圖欄中使用助手方法3

我的ApplicationController看起來像這樣

class ApplicationController < ActionController::Base 
    helper :application 
end 

我ApplicationHelper看起來像這樣

module ApplicationHelper 
    def ThemeDir 
    "http://mysite.com/something/something" 
    end 
end 

當我嘗試在視圖使用這種方法

<%= ThemeDir %> 

它給了我f以下錯誤。

uninitialized constant ActionView::CompiledTemplates::ThemeDir 

有人可以幫我這個請。

回答

5

在Rails的ThemeDir中將其視爲常量。

使方法名稱像'theme_dir',並嘗試。

9

Ruby中的約定是隻有常量(即「經典」常量,類和模塊)以大寫字母開頭。方法和變量應該始終以小​​寫字母開頭。

還有常量是用駱駝大寫的(請注意ApplicationController?中的兩個「高峯」),而變量和方法通常用下劃線語法編寫,例如theme_dir。這區別於Java,Javascript或C#等語言,駱駝在各處都使用(雖然它們仍然通過第一個字母來區分常量/初始化函數與變量和函數)。

由於方法的解析方式與常量不同,所以區別很重要。所以對於Ruby來說,知道你要求的是常量還是方法或局部變量是很重要的。

總結這一點,請列出你的幫手方法theme_dir,一切都應該沒問題。