【问题标题】:What is the difference between: rails vs. bin/rails?有什么区别:rails 与 bin/rails?
【发布时间】:2014-10-09 15:30:24
【问题描述】:

作为新生,我遇到了许多不清楚的细节。其中之一是 bin-thing。我一直想知道两者之间有什么区别:

rails generate... 

bin/rails generate...

?当我在控制台中运行这些命令时,它们的行为似乎相同。还有 rakebin/rake... 可能还有很多。感谢您的帮助。

-- 问候

【问题讨论】:

  • 没有区别,除了railsrake 可能由于某种原因不在路径中,然后您可以从bin 目录运行它们。你可以在这里阅读路径stackoverflow.com/a/16560612/2422778

标签: ruby-on-rails linux bin


【解决方案1】:

如果您只是运行“rails”,RubyGems 将激活它可以在 PATH 中找到的最新版本的 rails 可执行文件。只要您在项目中使用此版本的 Rails 就可以了。如果您有一个使用旧版本 Rails 的项目并运行“rails”,则在尝试运行在最新 Rails 版本中更改的代码时可能会遇到问题。 Binstubs 通过确保您的环境使用项目的 Gemfile 中指定的版本来解决此问题。

【讨论】:

    【解决方案2】:

    考虑这种情况:

    我有一个使用 Rails 4.0.0 版的应用程序。 我的目标是将它升级到 Rails 4.1.9。为此,我尝试逐步升级:首先升级到 4.0.13,然后升级到 4.1,最后升级到 4.1.9。

    一切都很顺利。使用 RSpec 的所有测试都通过了。

    最后,我尝试使用rails s 运行我的服务器。轰!鲁比崩溃了。 然后,我使用了bin/rails s。一切顺利。

    所以我认为如果您在系统中设置了不同版本的 rails,使用bin/rails 选项会更安全。

    附:为了确保我的假设是正确的,我删除了除 4.1.9 之外的所有 rails 版本,然后我尝试使用 rails s 重新运行服务器。这次没有崩溃。

    希望这可以澄清。

    【讨论】:

    • 对我来说这不是 100% 清楚的。它曾经使用 Rails 为我工作了很多年。几个月前,我意识到我必须在某些项目中使用bin/rails。在当前项目中,例如运行rails g 时无法使用我的自定义生成器。仅在使用 bin/rails g 时可见。任何想法为什么会这样?
    猜你喜欢
    • 2010-09-14
    • 2017-06-06
    • 2013-03-22
    • 2014-07-13
    • 1970-01-01
    • 2014-11-30
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多