2017-03-09 61 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 
相关问题