草庐IT

ruby-on-rails - 了解 Ruby 中的 tap

我正在审查Rails项目的一段代码,我遇到了tap方法。它有什么作用?此外,如果有人能帮助我理解其余代码的作用,那就太好了:defself.properties_container_to_objectproperties_container{}.tapdo|obj|obj['vid']=properties_container['vid']ifproperties_container['vid']obj['canonical-vid']=properties_container['canonical-vid']ifproperties_container['canonical-vid'

ruby-on-rails - Rails 3 中的 tap 方法 - 我是否正确理解了 API 文档?

我正在将Rails2应用程序升级到Rails3.2,并且遇到了所谓的惯用语。person.tap|p|做当我用Google搜索这个和itappearstohavebeendeprecatedormoved时.我的理解正确吗?我问是因为我可以在SO上找到它的几个例子。 最佳答案 tap方法已经在Rubysince1.8.7:tap{|x|...}=>objYieldsxtotheblock,andthenreturnsx.Theprimarypurposeofthismethodisto“tapinto”amethodchain,in

ruby - Heroku 数据库 :pull Taps Load Error: no such file to load -- pg

我在使用ruby​​1.9.2-p320和Heroku的Taps时遇到了以下错误-使用“db”命令,例如:herokudb:pull--appmy-app这会产生如下错误:TapsLoadError:nosuchfiletoload--sqlite3-或-TapsLoadError:nosuchfiletoload--pg(是的,顺便说一句,我拥有所有正确的gems,包括postgres——在本地运行良好——和sqlite3,以及卸载、重新安装和更新taps和herokugems并将它们包括为以及不将它们包含在我的Gemfile中。我正在运行Rails3.2.6)尽管有一个导致“时区偏

ruby - 是否有 Clojure 等效于 Ruby 的 #tap 方法

Ruby提供了#tap方法,它允许您接收一个变量并在其上运行代码,但随后返回原始变量而不是表达式的结果,即:defnumber5.tap{|x|printx}#Prints5,andreturns5endClojure中是否有任何内置函数可以提供此功能? 最佳答案 您正在寻找doto.这是您的示例,使用它重写:(doto5println)它的工作原理类似于->宏,它通过一系列函数传递值。一个关键区别是它返回您传入的初始值,而不是最终函数返回的值。 关于ruby-是否有Clojure等效于

ruby - ruby tap 方法在 {} 上的作用

这个问题在这里已经有了答案:UnderstandingtapinRuby(2个答案)关闭8年前。我读过tap在Ruby中的作用,但我对下面的代码块感到困惑,{}.tapdo|h|#somehashprocessingend如有任何帮助,我们将不胜感激。

ruby - 英雄数据库 :pull does not work?

我收到以下错误消息:herokudb:pull--debugpostgres://USERNAME:PASSWORD@localhost/testLoadedTapsv0.3.23Warning:Datainthedatabase'postgres://USERNAME:PASSWORD@localhost/test'willbeoverwrittenandwillnotberecoverable.ReceivingschemaUnabletofetchtablesinformationfromhttp://heroku:foo9dsfsdfsdb465ar@taps19.heroku

ruby-on-rails - 弃用警告 : Object#returning has been deprecated in favor of Object#tap

如何更改以下方法以使用tap来停止像这样的警告弃用警告:Object#returning已被弃用,取而代之的是Object#tap。(从/Users/millisami/apps/pandahr/config/initializers/fix_active_model_full_message.rb:17的full_messages调用):ActiveModel::Errors.class_evaldo#Removecomplicatedlogicdeffull_messagesreturningfull_messages=[]doself.each_keydo|attr|self[a

ruby - 点击服务器错误 `<module:Templates>':未初始化常量 Tilt::CompileSite (NameError)

我正在尝试将我的sqlite3数据库迁移到postgresql,但我无法通过此错误。当我运行tapsserversqlite://db/development.sqlite3[user][password]我不断收到/Users/phillipjarrar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.0/lib/sinatra/base.rb:298:in:uninitializedconstantTilt::CompileSite(NameError) 最佳答案

ruby - Ruby 中 Kernel#yield_self、yield(self)、Kernel#then 和 Object#tap 之间的区别?

Ruby2.5引入了#yield_self方法。Ruby2.6引入了#then方法。yield_self、yield(self)、then和现有的Object#tap有什么区别方法? 最佳答案 tap之间的区别和yield_self在这两种方法返回的内容中。Object#tap将self生成到block,然后返回self。Kernel#yield_self将自身交给block,然后返回block的结果。这里有一些例子,说明每个例子都有用:点击替换方法末尾对result行的需要:defmy_methodresult=get_some_

ruby - Super.tap {} - 它的作用和用例是什么?

我在gem中发现了这种结构,但不明白其意图。我知道tap单独做什么,但为什么有人会调用super.tap{}而不是在super调用后正常继续代码。defmy_methodsuper.tapdo|u|if@user&&@user.new_record?@omniauth=u.session[:session]u.session[:omniauth]=nilunless@user.new_record?endendend谁能教教我? 最佳答案 tap用于对对象执行一些操作,然后返回该对象。这听起来令人困惑,但在链接方法时很有用。示例:d