27

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

客户控制器.rb

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

我得到了错误:

NoMethodError:#CustomersController:0x007f3ca8378a20 的未定义方法“复数”

知道从哪里开始寻找吗?

4

3 回答 3

45

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

"customer".pluralize(@imported_customers.size)

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

view_context.pluralize(@imported_customers.size, "customer")
于 2015-11-14T04:03:47.157 回答
14

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

include ActionView::Helpers::TextHelper

喜欢

# app/controllers/cutomers_controller.rb

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

  def index
  etc. ...
于 2015-11-14T02:00:46.590 回答
13

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

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

或者

# app/controllers/cutomers_controller.rb

class CustomersController < ApplicationController
  include ActionView::Helpers::TextHelper
于 2015-11-14T03:55:28.843 回答