草庐IT

filling_missing

全部标签

ruby-on-rails - 如何在保持搜索逻辑功能的同时覆盖/添加到 method_missing?

我想在抛出method_missing时向我的模型添加一些行为,但我知道searchlogic已经将其用于其命名搜索范围。扩展method_missing功能的正确方法是什么?有没有办法对method_missing触发器使用react?很像如何将函数绑定(bind)到javascript中的事件? 最佳答案 当您说您希望在抛出methodmissing时发生某些事情,您是指每次还是仅在搜索逻辑未找到某些东西时发生?前者很简单:defmethod_missing(name,*)ifname=~/foo/i#callyourcusto

ruby - 用 method_missing 委托(delegate)的方法的数量

当我将类A的实例上的方法委托(delegate)给$delegation_target时,如下所示:$delegation_target=""classAdefmethod_missing*args,≺$delegation_target.send(*args,&pr)enddefrespond_to_missing?*args;$delegation_target.respond_to?(*args)endendA实例上方法的arity返回-1而不管方法的arity在$delegation_target上:def$delegation_target.foo;endA.new.m

ruby-on-rails - 创建中的 Rails 4 错误 "param is missing or the value is empty:"

我看过几个教程、ruby指南和几个stackoverflow问题。我先尝试使用simple_form,现在尝试使用老式方法,无法弄清楚为什么没有传递参数。Controller:defnew@topgem=Topgem.newenddefcreate@topgem=Topgem.new(topgem_params)if@topgem.saveredirect_to@topgemelserender'new'end...privatedeftopgem_paramsparams.require(:name).permit(:url,:description,:downloads,:last

ruby - 如何从 method_missing 获取绑定(bind)?

我试图找到一种方法来在Ruby(1.8)的method_missing中从调用者那里获取绑定(bind),但我似乎无法找到实现它的方法。希望下面的代码能解释我想做什么:classAdefsome_methodx=123nonexistent_methodenddefmethod_missing(method,*args,&block)b=caller_binding#那么...有没有办法获得调用者的绑定(bind),或者这在Ruby(1.8)中是不可能的? 最佳答案 这是一个(有点脆弱的)hack:#caller_binding.r

ruby - ruby中定义的method_missing在哪里

我使用ruby​​-1.9.3。当method_missing方法来的时候,我试图找出这个方法是在哪里定义的。我看了一下RubyDoc,发现方法是在BasicObject中定义的,但是当我在irb中使用BasicObject.methods.grep/^method/时,它给了我一个没有任何method_missing方法的结果数组,然后,我尝试了Kernel。methods.grep/^method/,但仍然没有method_missing方法。你能帮帮我吗?我在哪里可以找到这个方法? 最佳答案 使用Method#owner知道在

ruby - method_missing

我正在尝试实现method_missing以将$转换为其他货币,如5.dollarsyield为5、5.yen将yield为0.0655.euro6.56等等。我现在可以做到这一点。现在我需要实现它,但以5.dollars.in(:yen)为例。这是我现在拥有的:classNumeric@@currencies={'yen'=>0.013,'euro'=>1.292,'rupee'=>0.019}defmethod_missing(method_id)singular_currency=method_id.to_s.gsub(/s$/,'')if@@currencies.has_key

ruby-on-rails - Heroku|Ruby 参数错误 : Missing required arguments:

我在/config/initializers/carrier_wave.rb中添加了aws访问信息:ifRails.env.production?CarrierWave.configuredo|config|config.fog_credentials={#ConfigurationforAmazonS3:provider=>'AWS',:aws_access_key_id=>ENV['access_key'],:aws_secret_access_key=>ENV['secret_access_key'],}config.fog_directory=ENV['bucket']ende

ruby-on-rails - method_missing 覆盖不起作用

我写了一个方便的ActiveRecord扩展来将方法委托(delegate)给一个基础对象(基于multi-tableinheritance)classActiveRecord::Basedefself.acts_as(base)class_eval%Q{defmethod_missing(method,*args,&blk)#{base}.send(method,*args,&blk)rescueNoMethodErrorsuperend}endend我有一个state类和一个base类#stateclassclassMyState'MyState'has_one:tail,:cla

ruby -/usr/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill' : Timeout::Error (Timeout::Error)

我正在使用Capybara(Selenium驱动程序)访问网站上的某些页面。我只需单击数组中的每个项目,然后单击返回按钮。一切顺利,但每次经过一些迭代后它都会崩溃。这是代码:all(:xpath,'//table[@class="griglia_bordata"]//tr[td]/td/a[1]').eachdo|a|a_js_functions我有输出:javascript:selectModel('130254')Style:RB2132--------------------------------------------javascript:selectModel('30925

ruby - 创建 ActiveRecord 模型时出现问题 : data missing from save

我在开发的Sinatra应用程序中使用ActiveRecord在数据库中创建新模型行时遇到问题。正在创建有问题的对象,没有任何错误(使用保存!,没有引发异常),但我为保存指定的大部分数据都不存在。classProjectMeta对来self正在发送的项目对象以及我正在创建的新元对象的数据的所有检查都表明数据存在。但是当我在保存前后执行meta.inspect时,它显示所有数据(project_id除外)都处于默认状态(零)。我还检查了meta.errors.nil?果然,保存后没有任何错误。最令人费解的是,如果我回过头来获取一个具有该project_id的新元实例并将数据放入其中,那么