jjzjj

反射机制

全部标签

ruby-on-rails - 使用模型属性调用的 Brakeman 不安全反射方法常量化

在我的Rails应用程序中,我收到来自brakeman的以下安全警告。使用模型属性调用的不安全反射方法常量化。这是我的代码正在执行的操作。chart_type=Chart.where(id:chart_id,).pluck(:type).firstbeginChartPresenter.new(chart_type.camelize.constantize.find(chart_id))rescueraise"Unabletofindthechartpresenter"end根据我的研究,我还没有找到任何具体的解决方案。我听说你可以创建一个白名单,但我不确定brakeman在寻找什么。

ruby - ruby 的反射?

我很好奇这是如何工作的。例如,如果我创建一个基于工厂模式的类,您可以在其中“注册”类供以后使用,然后执行类似FactoryClass.register('YourClassName',[param,param,...]);FactoryClass.create('your_class_name').call_method_from_this_object其中'class_name'是映射到值的散列中的键:ClassName有没有类似phpreflection的东西,我可以在哪里创建基于字符串名称的类的实例并传入参数?(在php中,参数将是它们的数组,php然后知道如何处理)所以如果我们

ruby - Ruby 是否提供响应 OS X 上的 Apple 事件的机制?

我正在使用Ruby-Tk为OSX开发一个桌面应用程序,我想为该应用程序提供一个AppleEvents接口(interface)。这意味着应用程序将定义它将响应的AppleScript命令的字典(对应于发送到应用程序的Apple事件),并且用户/其他应用程序可以使用AppleScript命令编写Ruby-Tk应用程序的脚本。其他脚本语言支持此类功能——Python通过位于http://appscript.svn.sourceforge.net/viewvc/appscript/py-aemreceive/的py-aemreceive库和Tcl通过位于http://tclae.source

ruby - Ruby 的方法解除绑定(bind)机制有什么意义?

Method#unbind返回对该方法的UnboundMethod引用,稍后可以使用UnboundMethod#bind将其绑定(bind)到另一个对象.classFooattr_reader:bazdefinitialize(baz)@baz=bazendendclassBardefinitialize(baz)@baz=bazendendf=Foo.new(:test1)g=Foo.new(:test2)h=Bar.new(:test3)f.method(:baz).unbind.bind(g).call#=>:test2f.method(:baz).unbind.bind(h).

ruby - Ruby 中的反射。通过给定的类名实例化一个对象

我是从PHP开始接触ruby​​的。我怎么能用ruby​​做下一件事?$className='ArrayObject';$arrayObject=new$className(); 最佳答案 你可以这样做:arrayObject=Object::const_get('Array').new 关于ruby-Ruby中的反射。通过给定的类名实例化一个对象,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

ruby - 如何使用反射获取参数名称

我想在Ruby中做一些相当繁重的反射。我想创建一个函数,该函数返回调用堆栈更高层的各种调用函数的参数名称(只要高一点就足够了,但为什么要停在那里?)。我可以使用Kernel.caller,转到文件并解析参数列表,但这会很丑陋且不可靠。我想要的功能将按以下方式工作:moduleAdefmethod1(tuti,fruity)fooenddefmethod2(bim,bam,boom)fooenddeffooprintcaller_args[1].join(",")#the"1"meanonestepupthecallstackendendA.method1#prints"tuti,fru

ruby-on-rails - 如何在数据库中反射(reflect) Ruby on Rails 中新的 belongs_to 和 has_many 关系

我是Rails的新手(通常是Python专家),只是为了好玩而尝试构建一个简单的任务管理器应用程序。我正在使用Devise进行身份验证,并且有一个我试图与用户关联的任务对象。我已将以下内容添加到任务模型中:classTask并且我在我的Devise用户模型中添加了以下内容:classUser>end每当我添加此信息时,我都会运行:rakedb:migrate。然后它给了我一个错误,当我试图用它做任何事情时,user_id的数据库字段不存在。我确信这是我所缺少的相当简单的东西。感谢您的帮助。 最佳答案 向模型添加belongs_to(

Selenium等待机制之显示等待

显示等待需要用到两个类:WebDriverWait和expected_conditions两个类WebDriverWait:指定轮询间隔、超时时间等expected_conditions:指定了很多条件函数(也可以自定义条件函数)具体可以参考官网:selenium.webdriver.support.expected_conditions—Selenium4.5documentationfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.uiimpor

ruby - 如何通过反射获取 Ruby 模块类定义的常量?

我试图让Matz和Flanagan的“Ruby编程语言”元编程章节进入我的脑海,但是我无法理解我梦寐以求的以下代码片段的输出:pModule.constants.length#=>88$snapshot1=Module.constantsclassANAME=:abc$snapshot2=Module.constantsp$snapshot2.length#=>90p$snapshot2-$snapshot1#=>["A","NAME"]endpModule.constants.length#=>89pModule.constants-$snapshot1#=>["A"]pA.cons

ruby - 如何通过反射获取事件记录关联

对于普通列,您可以通过columns类方法获取它们。但是,如果在关系方法中设置了foreign_key选项,关联的名称可能会完全不同。例如,给定classPosthas_many:comments,:foreign_key=>:message_id#thisisacontrivedexampleend如果我做了Post.column_names,我可以得到message_id,但是有什么方法可以得到comments吗? 最佳答案 Model.reflections提供有关模型关联的信息。它是一个以关联名称为关键字的Hash。例如Po