ruby-on-rails 如何避免ActiveSupport中的循环参数引用警告

g52tjvyc  于 2023-08-08  发布在  Ruby
关注(0)|答案(9)|浏览(125)

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

字符串

4zcjmb1e

4zcjmb1e1#

使用Rails 3.2.22

gem 'rails', '3.2.22'

字符串

版本1.2.11.8中的警告修复:

bundle update ruby-ole

dgenwo3n

dgenwo3n2#

这是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可能是一种过度React。这将大大延迟您的部署过程。

68de4m5k

68de4m5k3#

我没有在我的应用程序中使用指南针基于这篇文章here,我把我的Rails版本从4.1.1升级到4.1.9,它可以工作。

ff29svar

ff29svar4#

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

68de4m5k

68de4m5k5#

这是我所做的解决,我有最新的ruby和gems不兼容,所以经过近一天的斗争,我切换到旧的rvm版本
从Ruby-2.2.1到Ruby-2.0.0,
同样,这不是Ruby版本的问题,而是与gems不兼容,尝试并祝你好运。

cczfrluj

cczfrluj6#

那么,这里是一个解决方案:尝试在.rbenv/.rvm文件夹中进行所有这些更改,并更改这些文件:
https://github.com/tmm1/rails/commit/8fd52705eda6a2cd7e9a8a5bc723fa094e359eb7

m3eecexj

m3eecexj7#

假设,更新到Rails 4.2.0 -你应该可以通过以下命令来完成-应该可以修复这个错误,尽管它对我来说并不起作用:

rvm use ruby-2.2.0@rails4.2 --create
gem install rails 
rails -v

字符串
我也得到了同样的“循环参数错误”消息(我在这里发布了更多关于我失败的修复尝试的信息,如果我找到答案会更新:Rails gem更新不起作用(版本4.1.1到4.2.0)作为“警告:循环参数引用”错误)。

qlvxas9a

qlvxas9a8#

我修改了time_zone.rb文件,而不是now=now,我输入了now=Time.now,问题解决了。

p3rjfoxz

p3rjfoxz9#

我也遇到了同样的问题,你可以使用以下步骤来解决它(对我有效)。

$ gem uninstall compass
$ gem update --system
$ gem install compass

字符串

相关问题