2017-03-09 7 views
0

私は、レールコンソールやIRBで 'pluralize'メソッドを使用できないことを知りました。これについて私が理解していないことはありますか?railsコンソールでpluralizeメソッドを使用できないのはなぜですか?

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

ルビファイルまたはビューファイルで使用されていると、正しく解釈されます。なぜレールコンソールで使用できないのですか?

+1

ヘルパー変数を介してそれらを呼び出して、それを含める必要があるので、あなたは_what_を複数形にしようとしていますか? 'メイン'? – 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

ルビまたはビューファイルで使用されていると解釈されます。なぜレールコンソールで使用できないのですか?

コンソールからではなく、ビューからの使用を前提としていたため(an action view helperとして定義されています)。

しかし、すべての希望が失われるわけではありません。あなたはすることができますコンソールのアクセスヘルパーメソッド!

helper.pluralize(...) 
2

これは、ドキュメントを見ることで明らかになるはずです:http://apidock.com/rails/ActionView/Helpers/TextHelper/pluralize

pluralizeは、それがあなたの助けとActionViewを通じてビューに利用可能であることを意味し、TextHelper上で定義されています。

ただし、このように、レールコンソールでそれを使用することができます。

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

かをTextHelperを含むことによって:Railsのビューで使用

include ActionView::Helpers::TextHelper 
関連する問題