草庐IT

method_idx

全部标签

ruby-on-rails - rails : How can I set the route for a method which doesn't require an :id parameter but instead requires 2 query parameters

我有一个列表表,其中包含一个列表模型和一个listings_controller类。我写了一个需要2个参数的方法:纬度和经度。然后,它会检索该坐标周围5公里左右的列表。在listings_controller中,这是我写的那个方法:defaroundlat=params[:latitude]long=params[:longitude]@surroundings=Listing.where("latitude=?andlongitude=?",lat,long)end我想做的是在我的routes.rb文件中设置一个url,当客户端浏览器调用该url时,它将提供纬度和经度作为2个参数。不

ruby - 法拉第 JSON 后 'undefined method bytesize' 有 body

我正在尝试将一些代码从HTTPParty转换为Faraday。以前我用的是:HTTParty.post("http://localhost/widgets.json",body:{name:"Widget"})新的片段是:faraday=Faraday.new(url:"http://localhost")do|config|config.adapterFaraday.default_adapterconfig.request:jsonconfig.response:jsonendfaraday.post("/widgets.json",{name:"Widget"})结果是:NoMe

ruby - 'defining a method' 在语义上是如何工作的?

背景:这是我对对象模型的理解(相对于我下面的问题):self始终引用当前堆栈帧中的接收器。当你在顶层时说defsomeMethod隐式接收者是self并且您正在创建一个位于与self关联的匿名类中的方法.这个匿名类恰好位于Object下面(self是Object类的一个实例)所以当你调用someMethod时,Ruby“向右走了一步”,它落在了匿名类中,从而找到并调用了你的方法。这类似于在类定义中定义方法时发生的情况。如果在类定义中,您说:defself.classMethod您正在一个位于Class正下方的匿名类中创建一个方法类(class)。此类的方法,当前正在定义的类的“右侧”现

Ruby 闭包 : How to return args and block as a single argument to pass to a method

假设我有一个接受参数和block的方法:defyield_if_widget(*args,&block)ifargs[0].is_a?(Widget)block.callendend我可以用参数和block调用这个方法:yield_if_widget(Widget.new)doputs"Ilikewidgets"end但是如果我有另一种方法来准备参数和block呢:defwidget_and_blockargs=[Widget.new]block=proc{puts"Ilikewidgets"}[args,block]end而且我希望能够将它直接传递给第一个方法:yield_if_wi

ruby-on-rails - 无方法错误 : undefined method 'user' for nil:NilClass

我正在阅读APIsonRails这本书,并且super困在第5章,试图测试sessionController。我收到以下错误,似乎无法找到它。有没有一种很好的方法来追查这些类型的错误?我错过了什么?1)Api::V1::SessionsControllerPOST#createwhenthecredentialsarecorrectreturnstheuserrecordcorrespondingtothegivencredentialsFailure/Error:post:create,{session:credentials}NoMethodError:undefinedmetho

ruby-on-rails - 使用:method => delete in button_to?的目的是什么

据我了解,HTML不支持HTTP动词“DELETE”,因此在创建删除表单时需要不同的路由。如果是这样,为什么这段代码可以正常工作,:users,:action=>'destroy',:id=>user.id},:method=>:delete%>但是,下面的代码不起作用:users,:action=>'destroy',:id=>user.id}%>它给出了错误:'没有路由匹配[POST]"users/1/"'解析的url不应该是users/destroy/1吗? 最佳答案 听起来您不需要代码答案,因为您已经有了一个可用的版本。Ra

ruby - Kernel#__method__ 在动态定义的方法中似乎无法正常工作

我一直在尝试在Ruby1.9中动态定义一些实例方法。这是我一直用来尝试的代码:classTesting[:one,:two].eachdo|name|define_method(name)doputs__method__endendend这是输出:ruby-1.9.2-p180:008>t=Testing.new=>#ruby-1.9.2-p180:009>t.onetwo=>nilruby-1.9.2-p180:010>t.twotwo=>nilruby-1.9.2-p180:011>我希望结果分别是one和two。如果我在迭代之外调用每个方法的define_method,它会按预期

ruby 问题 : Is there any way to invoke a method like the selector in Objective-C

这个问题在这里已经有了答案:Howtocallmethodsdynamicallybasedontheirname?[duplicate](5个答案)关闭8年前。在Obj-C中,可以使用选择器机制在运行时决定调用的方法。Ruby中是否有类似的东西,以便我可以在运行时将方法字符串转换为方法符号并调用它?

ruby-on-rails - ruby /rails : alias_method practices

我正在尝试覆盖Rails的“fields_for”方法,我目前正在这样做:moduleActionView::Helpers::FormHelperincludeActionView::Helpers::FormTagHelperalias_method:original_fields_for,:fields_fordeffields_for()#Someextrastuff#...output.safe_concatoriginal_fields_for()endend该功能运行良好,但我开始怀疑我对alias_method的使用不是最优雅的。最特别的是,如果我将此功能打包到一个ge

ruby - pik 错误 : private method `gsub' called for nil:NilClass

将JRuby1.3.1添加到pik时出现错误。错误:Error:privatemethod`gsub'calledfornil:NilClass这是我的路径环境变量:C:\Users\Owner>echo%path%C:\ProgramFiles\Java\jdk1.7.0_05\bin;c:\jruby-1.7.0.preview1\bin;C:\jruby-1.3.1\bin;c:\pik这是在尝试添加1.3.1版本时:C:\Users\Owner>pikaddC:\jruby-1.3.1\binTherewasanerror.Error:privatemethod`gsub'ca