2017-03-09 57 views
0

我剛剛纔知道我不能在rails控制檯或IRB中使用'pluralize'方法。有什麼我不明白的嗎?爲什麼我不能在rails控制檯中使用pluralize方法?

2.3.0 :001 > pluralize 
NameError: undefined local variable or method `pluralize' for main:Object 

它在Ruby或視圖文件中使用時會被很好地解釋。爲什麼我不能在軌道控制檯中使用它?

+1

所以,你想變複數_what_? 'main'? – mudasobwa

+0

@mudasobwa:我認爲(與你一樣)複數是一種字符串方法。但它不是:) –

+0

@SergioTulentsev geez ... – mudasobwa

回答

3

pluralize方法在ActionView::Helpers::TextHelper定義。要使用它在軌道控制檯,你需要把它列入

$ rails console 
2.3.3 :008 > include ActionView::Helpers::TextHelper 
2.3.3 :009 > pluralize 2, 'man' 
=> "2 men" 

或致電他們通過輔助變量

$ rails console 
2.3.3 :0010 > helper.pluralize(2, 'man') 
=> "2 men" 
2

當它在ruby或view文件中使用時,它會被很好地解釋。爲什麼我不能在軌道控制檯中使用它?

因爲它意味着從視圖中使用,而不是從控制檯使用(通過定義爲an action view helper)。

但並非所有的希望都失去了。您可以在控制檯中訪問幫助程序方法可以

helper.pluralize(...) 
2

應該成爲通過查看文件明確:http://apidock.com/rails/ActionView/Helpers/TextHelper/pluralize

pluralize定義上TextHelper,這意味着它是提供給你的幫助,並通過意見的ActionView。

但是,您可以使用它在軌道控制檯這樣的:

ActionController::Base.helpers.pluralize(...) 

或者通過包括TextHelper:在Rails的視圖中使用

include ActionView::Helpers::TextHelper 
相關問題