【问题标题】:How do I change the default Rails version that gets used?如何更改使用的默认 Rails 版本?
【发布时间】:2014-09-27 19:29:05
【问题描述】:

回答(其他菜鸟应该阅读我所做的): 感谢那些回答的人,但我想我知道为什么它之前仍然默认使用系统红宝石。我启动了一个 shell 会话并安装了 rbenv,然后为 rbenv 安装 ruby​​-build,然后安装 ruby​​ 2.1.2 并运行 rbenv global 2.1.2 然后我安装了新版本的 rails 并尝试创建一个新的 rails 项目。

我认为错误只是我没有启动新的 shell 会话,因此它默认为会话开始时的 rails 位置,即系统 ruby​​。愚蠢的错误。废话。

原帖: 这些是我的 rbenv 版本

  system
* 2.1.2 (set by /home/ab/.rbenv/version)

这就是我运行时得到的结果

gem list -d rails
rails (4.2.0.beta1, 4.1.1)
    Author: David Heinemeier Hansson
    Homepage: http://www.rubyonrails.org
    License: MIT
    Installed at (4.2.0.beta1): /home/ab/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
                 (4.1.1): /home/ab/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0

Hartl 在线教程使用的是 4.2.0beta1,所以我想使用它,但是当我尝试制作一个新的 rails 项目时,它默认为 4.1.1。

有人提出了一种更改默认 Rails 版本的方法,但该命令在错误的位置查找。看这里

ab@abpc:~/Code/RailsTutorial$ rails _4.2.0beta1_ -v
/usr/lib/ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find railties (= 4.2.0beta1) amongst [actionmailer-4.1.1, actionpack-4.1.1, actionview-4.1.1, activemodel-4.1.1, activerecord-4.1.1, activesupport-4.1.1, arel-5.0.1.20140414130214, builder-3.2.2, bundler-1.3.5, coffee-rails-4.0.1, coffee-script-2.2.0, coffee-script-source-1.7.0, diff-lcs-1.2.5, erubis-2.7.0, execjs-2.1.0, hike-1.2.3, i18n-0.6.9, jbuilder-2.0.7, jquery-rails-3.1.0, json-1.8.1, libv8-3.16.14.3-x86_64-linux, mail-2.5.4, mime-types-1.25.1, mini_portile-0.6.0, minitest-5.3.4, multi_json-1.10.1, net-http-persistent-2.9, nokogiri-1.6.2.1, polyglot-0.3.5, rack-1.5.2, rack-protection-1.5.3, rack-test-0.6.2, rails-4.1.1, railties-4.1.1, rake-10.3.2, rdoc-4.1.1, rdoc-3.9.4, ref-1.0.5, rspec-2.14.1, rspec-core-2.14.8, rspec-expectations-2.14.5, rspec-mocks-2.14.6, rspec-rails-2.14.2, sass-3.2.19, sass-rails-4.0.3, sdoc-0.4.0, sinatra-1.4.5, spring-1.1.3, sprockets-2.11.0, sprockets-rails-2.1.3, sqlite3-1.3.9, therubyracer-0.12.1, thor-0.19.1, thor-0.18.1.20140116, thread_safe-0.3.4, tilt-1.4.1, treetop-1.4.15, turbolinks-2.2.2, tzinfo-1.2.0, uglifier-2.5.0, webrat-0.7.3] (Gem::LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
        from /usr/lib/ruby/1.9.1/rubygems.rb:1231:in `gem'
        from /usr/local/bin/rails:22:in `<main>'

我还远远没有达到我想要的知识水平,但我可以看到“rails”默认为 usr/lib/bin/rails,我需要将其重新路由到 ~/.rbenv/versions /2.1.2/lib/ 或附近的某个地方......不完全确定在哪里,我不知道如何让它做到这一点。帮忙?

【问题讨论】:

  • 也许这个答案会对你有所帮助:stackoverflow.com/a/23432414/2173804
  • 如果您在旧项目中没有做太多工作,请使用您想要的版本创建一个新的 rails 项目。当您创建 Rails 应用程序时,它是使用 4.1.1 创建的,并且引用了相应的 gem 版本。由于 gem 版本不同,您无法使用不同版本的 rails 启动该应用程序。

标签: ruby-on-rails ruby linux


【解决方案1】:

您使用的系统 ruby​​ v1.9.1 似乎与 rails 4 完全不兼容(Rails 4 需要 1.9.3 或更高版本)。

因此,首先您需要使用rbenv global 2.1.2 设置您的ruby 版本以设置系统范围或rbenv local 2.1.2,如果您只是希望它用于此项目。我不确定您的系统是否会默认使用 rails-4.1.1 或更新的 beta,但您可以尝试rails -v 来找出答案。如果没有,rails _4.2.0.beta1_ new myapp 应该可以工作。

【讨论】:

    【解决方案2】:

    Hartl 在线教程使用 4.2.0beta1

    这是我所看到的:

    安装 Rails

    安装 RubyGems 后,安装 Rails 应该很容易。这个 教程标准化 Rails 4.0,我们可以按如下方式安装:

    $ gem install rails --version 4.0.8
    

    ...

    但是当我尝试创建一个新的 rails 项目时,它默认为 4.1.1。

    宝石文件:

    source 'https://rubygems.org'
    ruby '2.0.0'
    #ruby-gemset=sample_app2_gems
    
    gem 'rails', '4.0.8'
    
    ...
    

    设置您要在 Gemfile 中使用的 Rails 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      相关资源
      最近更新 更多