未定义的方法'pluralize'用于#<Controller>

Wes*_*ter 18 ruby-on-rails pluralize ruby-on-rails-4 undefined-function

不知道为什么这决定停止工作.

customers_controller.rb

redirect_to customers_url,
            notice: pluralize(@imported_customers.size, "customer") + " imported!"
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

NoMethodError:#CustomersController的undefined方法'pluralize':0x007f3ca8378a20

知道从哪里开始寻找?

Agu*_*ico 33

如果您不想使用视图助手,那么您可以使用String#pluralize:

"customer".pluralize(@imported_customers.size)
Run Code Online (Sandbox Code Playgroud)

如果您想使用视图助手,那么您应该将相应的助手包含为另一个答案,或者只使用ActionView::Rendering#view_context:

view_context.pluralize(@imported_customers.size, "customer")
Run Code Online (Sandbox Code Playgroud)


Dav*_*ger 9

默认情况下,该pluralize方法仅在您的视图中可用.要在控制器中使用它,请将它放在控制器类的顶部:

include ActionView::Helpers::TextHelper
Run Code Online (Sandbox Code Playgroud)

喜欢

# app/controllers/cutomers_controller.rb

class CustomersController < ApplicationController
  include ActionView::Helpers::TextHelper

  def index
  etc. ...
Run Code Online (Sandbox Code Playgroud)


akb*_*bin 7

您可以使用以下命令调用复数助手:

ActionController::Base.helpers.pluralize(@imported_customers.size, "customer") + " imported!"
Run Code Online (Sandbox Code Playgroud)

要么

# app/controllers/cutomers_controller.rb

class CustomersController < ApplicationController
  include ActionView::Helpers::TextHelper
Run Code Online (Sandbox Code Playgroud)