【问题标题】:Why can't I use the pluralize method in rails console? [duplicate]为什么我不能在 rails 控制台中使用复数方法? [复制]
【发布时间】:2017-03-09 17:35:58
【问题描述】:

我刚刚知道我不能在 rails 控制台或 IRB 中使用“pluralize”方法。这有什么我不明白的地方吗?

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

在 ruby​​ 或视图文件中使用时会得到很好的解释。为什么我不能在 Rails 控制台中使用它?

【问题讨论】:

  • 所以你想复数 whatmain?
  • @mudasobwa:我认为(和你一样)复数是一种字符串方法。但它不是:)
  • @SergioTulentsev 天哪...
  • @SergioTulentsev 实际上是a method on strings。所以"poop".pluralize 产生“便便”。
  • @mmichael:嗯。首先我的记忆失败了,然后我的谷歌搜索。我现在要戒网了。

标签: ruby-on-rails ruby


【解决方案1】:

Rails 视图中使用的pluralize 方法在ActionView::Helpers::TextHelper 中定义。要在 Rails 控制台中使用它,您需要包含它

$ 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】:

    查看文档应该会很清楚:http://apidock.com/rails/ActionView/Helpers/TextHelper/pluralize

    pluralize 是在TextHelper 上定义的,这意味着它可以通过 ActionView 提供给您的帮助和视图。

    但是,您可以像这样在 Rails 控制台中使用它:

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

    或者通过包含TextHelper:

    include ActionView::Helpers::TextHelper
    

    【讨论】:

      【解决方案3】:

      在 ruby​​ 或视图文件中使用时,它会得到很好的解释。为什么我不能在 Rails 控制台中使用它?

      因为它是用于视图,而不是控制台(定义为an action view helper)。

      但并不是所有的希望都落空了。您可以在控制台中访问辅助方法!

      helper.pluralize(...)
      

      【讨论】:

        猜你喜欢
        • 2019-06-28
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        • 2014-10-13
        • 2022-11-28
        • 1970-01-01
        • 2019-04-15
        • 2023-03-23
        相关资源
        最近更新 更多