为什么我不能在rails控制台中使用pluralize方法?

时间:2017-03-09 17:35:59

标签: ruby-on-rails ruby

我刚刚知道我无法使用这种方法'复数'在rails控制台或IRB中。有什么我不明白的吗?

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

在ruby或view文件中使用它时会得到很好的解释。为什么我不能在rails控制台中使用它?

3 个答案:

答案 0 :(得分:4)

Rails视图中使用的pluralize方法在ActionView::Helpers::TextHelper中定义。要在rails控制台中使用它,您需要包含它

$ 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"

答案 1 :(得分:2)

  

在ruby或view文件中使用它时会得到很好的解释。为什么我不能在rails控制台中使用它?

因为它意在从视图中使用,而不是从控制台使用(通过定义为an action view helper)。

但并非所有希望都失去了。您可以访问控制台中的帮助方法!

helper.pluralize(...)

答案 2 :(得分:2)

通过查看文档:{​​{3}}

,应该会清楚

pluralizeTextHelper上定义,这意味着它可以通过ActionView提供给您的帮助和观看。

但是你可以在rails控制台中使用它:

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

或者包括TextHelper

include ActionView::Helpers::TextHelper