【问题标题】:numbers_and_words gem not working - NoMethodError in Posts#index - undefined method `to_words' for 42:Fixnumnumbers_and_words gem 不起作用 - Posts#index 中的 NoMethodError - 42:Fixnum 的未定义方法“to_words”
【发布时间】:2013-12-10 23:34:02
【问题描述】:

我想将一些数字转换成文字。 所以我用“gem install numbers_and_words”安装了numbers_and_words gem -

我重新启动了服务器,并尝试从我的 index.html.erb 中的 Read.me 运行此示例:

<%= 42.to_words %>

但我收到此错误:

帖子中的 NoMethodError#index - 42:Fixnum 的未定义方法“to_words”

我检查了几次 gem 文档,但我无法弄清楚我缺少什么。

这是我关于索引的帖子控制器。

  def index
    @posts = Post.order("created_at desc")
    @published = Post.where(draft:false).order("created_at desc")
    @drafts = Post.where(draft:true).order("created_at desc")

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @posts }
    end
  end

我做错了什么?我在安装过程中忘记了什么吗? 我对 Rails 很陌生,如果这是一个微不足道的新手问题,我很抱歉。

非常感谢您的帮助!真的很感激。

【问题讨论】:

  • 你不能只写四十二吗?
  • @ShaunFrostDukeJackson ;) - 这只是自述文件中的测试示例。我想写 当然也不行。

标签: ruby-on-rails ruby-on-rails-3 rubygems nomethoderror


【解决方案1】:

安装 gem 不足以使其在 Rails 项目中可用。您需要将其添加到 Gemfile,以便您可以使用 Bundler 管理依赖项。

编辑“Gemfile”并添加 gem

gem 'numbers_and_words'

然后再次运行 bundle 以更新 Gemfile.lock

$ bundler

这将使 gem 可用于应用程序。如果 gem 使用标准命名约定,它还会在启动时自动要求 gem。

看来这颗宝石的名字是正确的。否则,您可以通过在 gemfile 中设置 require 选项来明确要求它

gem 'numbers_and_words', require: 'numbers_and_words'

如果你只是在本地安装了 gem 而没有配置 Gemfile,一旦你部署它,应用程序就会崩溃。

【讨论】:

  • Simone,感谢您澄清这一点!我忘了提一下,我还将 gem 添加到 gem 文件中并进行了“捆绑安装”,但它不起作用。诀窍是添加“要求:'numbers_and_words',然后它对我有用。
【解决方案2】:

找到了一个解决方案 - gem 的文档中没有提到,但它对我有用:

我加了

require 'numbers_and_words'

在 rake 文件中。服务器重启后,它就可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多