草庐IT

unsupported-class-version

全部标签

ruby - 类型错误 : superclass mismatch for class Word in Ruby

我正在创建一个Word类,但出现错误:TypeError:superclassmismatchforclassWord这是irb代码:irb(main):016:0>classWordirb(main):017:1>defpalindrome?(string)irb(main):018:2>string==string.reverseirb(main):019:2>endirb(main):020:1>end=>nilirb(main):021:0>w=Word.new=>#irb(main):022:0>w.palindrome?("foobar")=>falseirb(main):

ruby - JRuby:导入与包含与 java_import 与 include_class

为什么有这么多不同的方法将Java类包含到JRuby中?有什么区别?我应该使用哪一个? 最佳答案 您可以在以下位置找到大量有关使用Java类的示例:https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby它指出,由于JRUBY-3171,您应该使用java_import而不是import错误。此外,include_class已经或将被弃用(JRUBY-3797),取而代之的是java_import。目前,java_import是导入Java类的推荐方式。

ruby-on-rails - 如何在 OS X 上使用 ruby​​ 2.3 为 mysql2 gem 解析 "incompatible library version"?

我使用的是ruby​​2.3,在gemfile中,我列出了mysql2gem。但是当我尝试运行rakedb:migrate时,我得到以下信息:/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2.rb:31:in`require':incompatiblelibraryversion-/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle(fatal)我似乎无法绕过这个。我用Homebrew安装了Mysql5.7,尝试更新包,卸载并重新安装mysql

Ruby 的 def 和 instance_eval 与 class_eval

我正在阅读ProgrammingRuby1.9的元编程部分,但我无法理解class_eval之间内部发生了什么|/class_exec与instance_eval/instance_exec.首先,我的理解是def在self的方法表中添加一个方法(类对象):classAputsself#=>Adeffoo;42;end#addedtothemethodtableofself,sobecomesaninstancemethodendA.new.foo#=>42如果我们使用class_eval,我们得到相同的行为:A.class_evaldoputsself#=>Adefbar;42;en

ruby - 了解 ruby​​ .class 和 .ancestors 方法

我有一个定义如下的类classOrderendputsOrder.class#->ClassputsOrder.ancestors#->[Order,Object,Kernel,BasicObject]putsOrder.class.ancestors#->[Class,Module,Object,Kernel,BasicObject]我的问题是为什么Order.ancestors在祖先链中不显示“类”或“模块”?既然Order是类Class的一个对象,Order不应该显示Class的所有祖先吗? 最佳答案 为此,您需要了解Ruby

ruby - 有人可以解释 Class.superclass.class.superclass 悖论吗?

这可能根本不是悖论,但从新手的角度来看,确实如此。>Class.superclass=>Module>Class.superclass.class=>Class>Class.superclass.class.superclass=>Module所以一个类的父类是模块,但模块是一个类?我怎样才能理解这一点? 最佳答案 TL;DR:模块是类的父类(superclass)。模块是类的一个实例。让我试着更清楚地解释一下。请原谅我手写的图——我没有什么花哨的绘图软件。Ruby中的每个类都有1个父类(superclass)*。*BasicObj

ruby - Ruby 1.9 中的 ARGF.class 是什么?

在Ruby1.8.7中,thedocumentation不在类和模块下列出ARGF,并且ARGF不是类或模块:ARGF.class#=>Object在Ruby1.9.3中,thedocumentation在类和模块下有ARGF,但我看到了这个:ARGF.class#=>ARGF.classARGF.superclass#=>NoMethodError:undefinedmethod`superclass'forARGF:ARGF.classARGF.class.superclass#=>Object为什么Ruby1.9文档将ARGF放置为类,而实际类是其他东西?或者它们是同一回事?AR

ruby - 如何调用父类(super class)方法

我有两个类A和B。B类重写A类的foo方法。B类有一个bar方法,我想在其中调用父类(superclass)的foo方法。这种调用的语法是什么?classAdeffoo"hello"endendclassB对于类方法,我可以通过在类名前显式添加前缀来调用继承链中的方法。我想知道实例方法是否有类似的习语。classPdefself.x"x"endendclassQ编辑我的用例很一般。对于特定情况,我知道我可以使用alias技术。这是Java或C++中的常见功能,所以我很想知道是否可以在不添加额外代码的情况下执行此操作。 最佳答案 在R

ruby-on-rails - 服务器启动时如何修复 "Your Ruby version is 2.3.0, but your Gemfile specified 2.2.5"

我在运行服务器时遇到此错误,我该如何解决? 最佳答案 为了兼容性,您最好安装Ruby2.2.5。本地计算机中的Ruby版本与Gemfile中声明的版本不同。如果您使用的是rvm:rvminstall2.2.5rvmuse2.2.5否则,如果您使用的是rbenv:rbenvinstall2.2.5rbenvlocal2.2.5否则如果你不能通过rbenv改变ruby​​版本,readhere 关于ruby-on-rails-服务器启动时如何修复"YourRubyversionis2.3.0

ruby-on-rails - 带有 Ruby 2.5.1 控制台的 Rails 5.2.0 - `warning:` `already` 初始化常量 FileUtils::VERSION

我目前在使用我的新Rails应用程序时遇到问题,更具体地说:rails5.2.0Ruby2.5.1p57(2018-03-29修订版63029)[x86_64-darwin17]rvm1.29.4(最新),作者:MichalPapis、PiotrKuczynski、WayneE.Seguin[https://rvm.io]当我运行railsc时,它会生成一个指向fileutilsgem的警告链接,如下所示:`/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/fileutils.rb:90:``warning:``already`initialize