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

时间:2015-11-14 01:48:26

标签: ruby-on-rails ruby-on-rails-4 pluralize undefined-function

不确定为何决定停止工作。

customers_controller.rb

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

我收到了错误:

  

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

知道从哪里开始寻找?

3 个答案:

答案 0 :(得分:30)

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

"customer".pluralize(@imported_customers.size)

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

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

答案 1 :(得分:9)

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

include ActionView::Helpers::TextHelper

# app/controllers/cutomers_controller.rb

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

  def index
  etc. ...

答案 2 :(得分:6)

你可以用:

调用复数助手
ActionController::Base.helpers.pluralize(@imported_customers.size, "customer") + " imported!"

# app/controllers/cutomers_controller.rb

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