如何避免activesupport中的循环参数引用警告

时间:2014-12-31 06:46:20

标签: ruby-on-rails activesupport

如何避免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

9 个答案:

答案 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)

这是compass问题here。他们还没有发布新版本,所以你可能需要等待它。

答案 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并解决了问题。