草庐IT

ruby - 没有类方法获取 Ruby 类名

如何在Ruby中获取BasicObject实例的类名?例如,假设我有这个:classMyObjectSystem我怎样才能使这段代码成功?编辑:我发现Object的实例方法class被定义为returnrb_class_real(CLASS_OF(obj));。有什么方法可以从Ruby中使用它? 最佳答案 我花了一些时间研究irb并想出了这个:classBasicObjectdefclassklass=class这将为任何从BasicObject继承的对象提供一个#class您可以调用的方法。编辑评论中要求的进一步解释:假设你有对象

Ruby:是否可以在不对类名进行硬编码的情况下确定我的 Ruby 方法在其中执行的类?

我是Ruby的Nuby。我正在寻找一种方法来获取当前执行行的方法的包含类对象。如果不对类名进行硬编码,这可能吗?#hardcodedexampleclassAdefto_s"Iama"+A.to_s#Class"A"ishardcodedhere.IsthereanotherwaytoreferencetheclassA?endend我想也许self.class会起作用,但是当类被子类化时,它并没有给我我想要的东西。#FollowingOutputs=>IamaCamelIamaCamelIamaCamel#butIwant=>IamaCamelIamaMammalIamaAnimal

ruby-on-rails - 解决 Rails 应用程序中的类名冲突

我一直在构建一个执行会计功能的Rails应用程序。作为其中的一部分,我有一个类名为Transaction的模型。到目前为止一切顺利,我构建此功能已有一个月左右的时间,一切都按预期进行。到目前为止...我刚刚发现几个月前使用Ruport库开发的一些旧报告功能已停止工作。看起来Ruport在生成PDF时需要一个库,该库也有一个名为Transaction的类/模块。TypeErrorinAdmin/teamreportsController#generateTransactionisnotamodule...Thiserroroccurredwhileloadingthefollowingf

ruby - 如何在 Watir 中获取 HTML 中具有相同属性的元素的数量?

我有一个HTML文档,其中包含具有相同类名的元素。我可以对页面中的所有元素进行迭代,并将具有类名的元素存储在列表中。Watir是否有更好的方法来计算所有具有相同类名的HTML元素?这个问题CountofElementswithsameattributeinXML某种程度上解决了这个问题,但我有两个与此相关的问题如果HTML文档不是严格的XHTML文档怎么办?如果不同类型的HTML元素具有相同的类会怎样?示例HTML文件可以是:具有相同类名的相同类型的元素具有相同类名的不同类型的元素Text先谢谢大家 最佳答案 如果您使用watir-

ruby - 如何将字符串文本转换为类名

我有一个字符串作为classname="Text"使用它我想创建一个Text类的对象现在当我尝试这样做时classname=classname.constantize我将文本作为模块而不是类获取。请提出一些建议。感谢和问候罗希特 最佳答案 你可以使用:Object.const_get(class_name)$irb>>classPerson>>defname>>"Personinstance">>end>>end=>nil>>class_name="Person"=>"Person">>Object.const_get(class_

ruby-on-rails - 如何在 Ruby on Rails 中获取人类可读的类名?

我正在使用Ruby1.9.3和Rails3.0.9构建一个应用程序我有一个像下面这样的类。moduleCDAclassDocumentdefhumanize_class_nameself.class.name.gsub("::","")endendend我想要像“CDADocument”这样的类名。我的humanize_class_name方法是实现此目的的正确方法吗?或Rails是否还有其他可用的内置方法? 最佳答案 如果您使用i18n,您可以调用Model.model_name.human来获取本地化的模型名称。例如:Event

ruby-on-rails - Ruby -::in 类名

我正在处理一些遗留的RoR代码,它有四个相关的类,每个类都在自己的文件中定义。所有这些类都是解析器类,位于app/models/parsers中。每个文件名都以_parser.rb结尾。这是来自文件adf_parser.rb的示例类定义行:classParsers::AdfParser我不知道Parsers::的一部分在做什么。在我能找到的任何地方都没有定义名为Parsers的显式模块。我没有看到任何关于通过将模块规范添加到类名来隐式创建模块的文档。唯一的外部依赖是“需要'csv'”。类定义中有include语句,但我认为它们没有任何可以解释类名的内容。我创建了一个新的RoR测试项目并

ruby - 如何将类名作为变量传递给ruby中的另一个类

我正在尝试学习用ruby​​创建一个多类程序。我编写了一个引擎类和一些其他类,如城市、街道等,但在将类名作为变量传递给其他类时遇到了问题。下面的代码抛出错误:“City.rb:15:in'intro':undefinedlocalvariableormethodgame'for#(NameError)”。我在某种程度上理解这个问题,但我认为这个城市不需要知道任何关于游戏对象,我认为它只需要获取它并将其传回即可。但表面上我对如何在类之间传递变量(尤其是类名)有误解。我的设计有什么问题?#Game.rbrequire'./City.rb'classEnginedefinitialize(c

ruby - Capybara - 按类名单击元素

对于一个看似简单的问题,我已经思考了很长时间,但似乎无法在Google上找到任何内容。我有这个按钮,我需要点击它没有id但包含一个类CASESTUDIES(2)我试过使用click_on,我现在知道它只适用于链接和按钮,所以当然不会起作用。这是我目前所拥有的:When(/^Ifiltertheresultstoonlyseecasestudies$/)doclick_on('filter-case-studies')end我也尝试过page.find('filter-case-studies').click,这也行不通。page.find(:class,'filter-case-stu

ruby - Ruby 中 'Know' 类名的类方法?

我希望继承的ruby​​类通过类方法“知道”它的类名。一个人为的例子最好地说明了这一点:classParentdefself.whoami??endendclassChild所以我应该可以调用:Parent.whomai并期望返回“Parent”,然后我应该可以调用:Child.whoami并期待返回“Child”我觉得在传统语言中这可能是不可能的。但Ruby的元编程模型以前曾让我惊叹。有什么想法吗?提前致谢。 最佳答案 类方法是一种方法,其中CLASS是接收者,因此要找到调用该方法的对象(您在这里似乎试图做的事情)只需检查self