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

Undefined method 'pluralize' for #<Controller>

不确定为什么决定停止工作。

customers_controller.rb

redirect_to customers_url,
            notice: pluralize(@imported_customers.size, "customer") + " imported!"

我收到错误消息:

NoMethodError: undefined method 'pluralize' for #CustomersController:0x007f3ca8378a20

知道从哪里开始寻找吗?

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

include ActionView::Helpers::TextHelper

喜欢

# app/controllers/cutomers_controller.rb

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

  def index
  etc. ...

您可以通过以下方式调用 pluralize helper:

ActionController::Base.helpers.pluralize(@imported_customers.size, "customer") + " imported!"

# app/controllers/cutomers_controller.rb

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

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

"customer".pluralize(@imported_customers.size)

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

view_context.pluralize(@imported_customers.size, "customer")