【问题标题】:"Could not find generator figaro:install"“找不到生成器 figaro:安装”
【发布时间】:2014-01-22 05:11:19
【问题描述】:

我正在使用来自 learn-rails.com 的“Learn Ruby On Rails”pdf 书。

我在第 13 章,“配置”。我们应该在哪里执行命令:“rails generate figaro:install”

在第 12 章中,我们安装了 figaro gem:“我们已经在 Gemfile 中安装了 figaro gem,然后运行 ​​bundle install。”

当我运行该命令时,我得到:“找不到生成器 figaro:install。”

我开始搜索类似的问题,我确实在这里找到了这个问题:rails generate - "Could not find generator" 建议他们在命令中也包含“迁移”。

我将它包含在我的命令中,我让它做某事,但我认为它没有做它应该做的事情?

invoke  active_record
/Users/NormalUse/.rvm/gems/ruby-2.0.0-p353@learn-rails/gems/activerecord-4.0.2/lib/rails/generators/active_record/migration/migration_generator.rb:57:in `validate_file_name!': Illegal name for migration file: figaro:install (ActiveRecord::IllegalMigrationNameError)
(only lower case letters, numbers, and '_' allowed)
from /Users/NormalUse/.rvm/gems/ruby-2.0.0-p353@learn-rails/gems/activerecord-4.0.2/lib/rails/generators/active_record/migration/migration_generator.rb:10:in `create_migration_file'

然后还有大约 20 行。我只是不想把它都放在这里。

作者接着说:

“使用 rails generate 命令,figaro gem 会生成一个 config/application.yml 文件并将其列在您的 .gitignore 文件中。.gitignore 文件会阻止 config/application.yml 文件保存在 Git 存储库中,因此您的凭据是保密的。”

当我进入我的项目目录并查看“config”文件夹时,我确实有一个“application”文件,但它以“.rb”而不是“yml”结尾。所以很明显这个命令没有做它应该做的事情,对吧?

有人对我有什么想法吗?

我在 Mac OSX 10.7.5 上使用带有 RVM 的 Ruby 2.0.0 和 Rails 4.0.2

【问题讨论】:

  • 您是否将gem "figaro" 行放入项目的Gemfile 文件然后运行bundle install
  • 是的,这里的行:gem 'compass-rails', '~> 2.0.alpha.0' gem 'figaro' 是我们使用的。然后我做了捆绑安装。
  • 您可能需要重启终端:github.com/laserlemon/figaro/issues/180

标签: ruby-on-rails ruby


【解决方案1】:

如果你现在做这个教程而不是“rails generate figaro:install”运行命令“figaro:install”由于 figaro 1.0.0 版本https://github.com/laserlemon/figaro

【讨论】:

  • 非常感谢 :) 顺便说一句,它实际上是“figaro install”
【解决方案2】:

在您学习的过程中(顺便说一句,欢迎来到 Rails 社区!),让我解释一下 Figaro 的功能以及如何使用(安装)它:


费加罗

Figaro 是一种在开发和生产中创建 ENV variables 的方法。这是一个gem,您必须在从 Rails cmd 调用之前安装它

与 Rails 中的其他 Ruby gem 一样,您必须将其添加到您的 Gemfile,其中列出了您的应用将使用的所有插件。根据RubyGems.org,您可以像这样在您的 Gemfile 中列出它:

#Gemfile
gem "figaro", "~> 0.7.0"

将此行添加到 Gemfile 后,您需要安装它。为此,您应该运行 bundle install 来运行捆绑程序(安装程序)

完成此操作后,您需要从 cmd 运行此命令:

rails generate figaro:install

错误

您的错误似乎表明您遇到了迁移问题?

迁移文件的非法名称:figaro:install (ActiveRecord::IllegalMigrationNameError)

我猜你调用了这个命令:

rake db:migrate figaro:install

如果是这种情况,您应该通过运行 rake db:migrate 然后运行 ​​rails generate figaro:install 来执行任何迁移。这将分别运行命令,这应该有助于它们工作

【讨论】:

  • 非常感谢 Rich!很好,有帮助的答案。根据这本书,它说要将它添加到 Gemfile:“gem 'compass-rails', '~> 2.0.alpha.0' gem 'figaro'”,我这样做了,然后我们运行 bundle install,这似乎工作得很好。我调用的命令是:“rails generate figaro:install”。我应该继续将 Gemfile 更改为您的建议吗?我仍然担心输入错误的命令,把事情搞砸。
  • 再次感谢 Rich,我继续按照您的建议编辑了我的 Gemfile,我很高兴!
  • 是的,这解决了问题。再次感谢!
  • 上面提到的版本(0.7.0)似乎有帮助。当我尝试在不指定版本的情况下安装 figaro 时,它安装了 1.1.0(稍后在 gem 卸载期间发现)。使用较低版本可以消除此“未找到生成器”错误。谢谢。 〜困惑但感激
  • 1.0.01.1.1 两个版本都不起作用。这一个有效。
【解决方案3】:

请尝试以下一种:

捆绑执行 figaro 安装

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多