gpt4 book ai didi

ruby-on-rails - Rails gem update not working (version 4.1.1 to 4.2.0) 作为 "warning: circular argument reference"错误的解决方案

转载 作者:行者123 更新时间:2023-12-04 03:36:33 28 4
gpt4 key购买 nike

当我运行任何类型的 rake 命令时,我不断收到以下错误,特别是 rake db:seed 它将在没有完成的情况下中止:

$ rake db:seed
/Users/rachel/.rvm/gems/ruby-2.2.0@rails4.2/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now
rake aborted!
ActiveRecord::UnknownAttributeError: unknown attribute: description

我做了一些研究,发现这是一个错误(我认为?)是由 Rails 4.1.9 中的不兼容 gem 引起的,所以我希望创建一个新的 rvm 来将 Rails 更新到 4.2.0,这样我就可以继续我的工作了项目。但是,每次我尝试更新 Rails 时,它都会显示“已安装”,但实际上并没有安装到我创建的 ruby​​ 版本中。这是我尝试更新 Rails 时的典型命令行模式:

$ rvm gemset create rails420
ruby-2.2.0 - #gemset created /Users/rachel/.rvm/gems/ruby-2.2.0@rails420
ruby-2.2.0 - #generating rails420 wrappers........
$ rvm 2.2.0@rails420
$ gem install rails -v 4.2.0
Fetching: rails-4.2.0.gem (100%)
Successfully installed rails-4.2.0
Parsing documentation for rails-4.2.0
Installing ri documentation for rails-4.2.0
Done installing documentation for rails after 339 seconds
1 gem installed
$ rvm 2.2.0@rails420
$ rails --version
Rails 4.1.1

基本上,它会安装 Rails 4.2.0,但是当我在安装后立即检查版本时却说它没有安装。关于如何解决错误或让 Rails gem 在我的 rvm 中正确更新的任何想法?

最佳答案

导致“警告:循环参数引用”的问题是我项目的 Gemfile.lock 中的文件与我正在安装的版本不匹配,因此它一直恢复到过时的版本并导致错误。

为了修复,我更新了所有的 gemsets 并运行清理以确保没有剩余的过时版本,然后运行以下命令:

rvm use --create 2.2.0@newtest
gem install rails
Fetching: rails-4.2.0.gem (100%)
Successfully installed rails-4.2.0
Parsing documentation for rails-4.2.0
Installing ri documentation for rails-4.2.0
Done installing documentation for rails after 326 seconds
1 gem installed
$ bundle install

然后我检查了版本以确保 activerecord、activesupport、rails 和 railties 都至少有 4.2.0。一旦我确定这些 gems 正在工作,我就在新更新的 rvm 中创建了一个新的 Rails 项目:

$ rvm use ruby-2.2.0@newtest
$rails new projectname

这使用 Rails 4.2.0 创建了一个新项目,它与正确的 gem 兼容以避免“警告:循环参数引用”错误,所以当我使用 rake 或任何其他命令时我不再看到它。有关更详细的解释,请参阅 api.rubyonrails.org/classes/Rails/Railtie.html - Railtie 是协调 Rails 操作(如 rake)的 gem,所以如果它在你的 Gemfile.lock 中过时但在你的 Ruby rvm 中没有将产生错误。

关于ruby-on-rails - Rails gem update not working (version 4.1.1 to 4.2.0) 作为 "warning: circular argument reference"错误的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824040/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com