如何避免activesupport中的循环参数引用警告。发生在ruby 2.2.0
上/home/ec2-user/apps/foo_prod/shared/bundle/ruby/2.2.0/gems/activesupport-3.2.21/lib/active_support/values/time_zone.rb:270: warning: circular argument reference - now
/home/ec2-user/apps/foo_prod/shared/bundle/ruby/2.2.0/gems/ruby-ole-1.2.11.7/lib/ole/types/base.rb:265: warning: duplicated key at line 266 ignored: 4095
答案 0 :(得分:16)
使用Rails 3.2.22
gem 'rails', '3.2.22'
OR
版本1.2.11.8中的警告修复:
bundle update ruby-ole
答案 1 :(得分:10)
我没有在我的应用程序中使用指南针基于这篇文章here我将我的Rails版本从4.1.1升级到4.1.9。它有用。
答案 2 :(得分:10)
这是Active Support的问题,并已通过以下两个提交修复:
不幸的是,这些提交从未包含在3.2版本中, 因为当前的最新版本(v3.2.21)已于2014年11月18日发布 并且之后这些提交被合并。
如果您不希望看到此警告消息 ,则应更改
你的Gemfile
就像这样:
# gem 'rails', '3.2.21' gem 'rails', git: 'https://github.com/rails/rails.git', branch: '3-2-stable'
否则,您应该将ruby降级到2.1或等待v3.2.22的发布, 直到找到严重的安全漏洞才会到来。
毕竟,没有简单的方法来避免这个问题。正在更改Gemfile
在我看来,这种微不足道的烦恼可能是一种过度反应。
它会延迟你的部署过程。
答案 3 :(得分:8)
答案 4 :(得分:3)
这就是我要解决的问题,我有最新的红宝石,宝石与之不兼容,所以经过近一天的战斗后,我使用rvm切换到旧的红宝石版本
从ruby-2.2.1到ruby-2.0.0,
再次这不是ruby版本的问题,但与宝石不兼容,试试并祝你好运。
答案 5 :(得分:2)
嗯,这是一个解决方案: 尝试在.rbenv / .rvm文件夹中进行所有这些更改并更改这些文件:
https://github.com/tmm1/rails/commit/8fd52705eda6a2cd7e9a8a5bc723fa094e359eb7
答案 6 :(得分:1)
假设,更新到Rails 4.2.0 - 您应该可以通过以下命令执行 - 应该修复此错误,尽管它对我没用:
rvm use ruby-2.2.0@rails4.2 --create
gem install rails
rails -v
我也得到了相同的“循环参数错误”消息(我发布了更多关于我在这里修复它的失败尝试,如果我找到答案会更新:Rails gem update not working (version 4.1.1 to 4.2.0) as a solution to "warning: circular argument reference" error)。
答案 7 :(得分:0)
我也遇到了同样的问题,你可以起诉以下步骤来解决它(为我工作)。
$ gem uninstall compass
$ gem update --system
$ gem install compass
答案 8 :(得分:0)
我更改了time_zone.rb文件,而不是now=now
,而是输入now=Time.now
并解决了问题。