ruby-on-rails – needledefinition-context.rb:36:警告:取消定义`initialize’可能会导致严重的问题

ruby-on-rails – needledefinition-context.rb:36:警告:取消定义`initialize’可能会导致严重的问题,第1张

概述我在导轨3.1中安装了一个新的宝石针. 它正确安装,但是当我使用命令rails server –debugger启动我的rails时 我收到以下警告: .rvm/gems/ruby-1.9.2-p290/gems/needle-1.3.0/lib/needle/definition-context.rb:36: warning: undefining `initialize' may cause 我在导轨3.1中安装了一个新的宝石针.

它正确安装,但是当我使用命令rails server –deBUGger启动我的rails时

我收到以下警告:

.rvm/gems/ruby-1.9.2-p290/gems/needle-1.3.0/lib/needle/deFinition-context.rb:36: warning: undefining `initialize' may cause serIoUs problems.rvm/gems/ruby-1.9.2-p290/gems/needle-1.3.0/lib/needle/deFinition-context.rb:36: warning: undefining 'object_ID' may cause serIoUs problems.rvm/gems/ruby-1.9.2-p290/gems/needle-1.3.0/lib/needle/deFinition-context.rb:36: warning: undefining '__send__' may cause serIoUs problems

我怎么能摆脱它?

解决方法 问题在于针宝石本身.它这样做:

public_instance_methods -[ "instance_eval","object_ID","__ID__","__send__","initialize","remove_const","method_missing","method","class","inspect","to_s","instance_variables","block_given?" ]

但是在Ruby 1.9中,public_instance_methods方法返回Symbol变体的对象,而不是String.那么有效的是:

[:__send__,<and other methods>] - ["__send__",<and other methods>]=> [:__send__,<and other methods>]

什么时候不应该删除提供的数组中的那些方法.

这向我表明该库尚未针对Ruby 1.9进行更新(或至少已经过测试).我建议找到这个库的代码,分叉它然后应用一个补丁,使用map(&:to_sym)之类的东西将数组转换为符号来解决这个问题.

但请注意:可能存在其他情况,即1.8和1.9之间存在这些差异.

总结

以上是内存溢出为你收集整理的ruby-on-rails – needle / definition-context.rb:36:警告:取消定义`initialize’可能会导致严重的问题全部内容,希望文章能够帮你解决ruby-on-rails – needle / definition-context.rb:36:警告:取消定义`initialize’可能会导致严重的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1222054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存