草庐IT

all_symbols

全部标签

ruby - 为什么 .index 比 .all 快?

这是做同样事情的两个简单block:a=(0..100).to_aa.all?do|x|!(x==1000)endnil==a.indexdo|x|x==1000end除了第二个总是快一点。为什么?usersystemtotalrealtestingall1.1400000.0000001.140000(1.144535)testingindex0.7700000.0000000.770000(0.769195) 最佳答案 原因是index是Array的一个方法。Ruby将迭代(在C中)项目并将它们依次生成到block。另一方面,a

ruby-on-rails - Rails 使用 Symbol 与 String 作为 params hash 中的键

如果我们使用字符串作为哈希键,Ruby需要计算字符串并查看它的内容(并计算其上的哈希函数)并将结果与​​已存储的键的(哈希)值进行比较在哈希中。如果我们使用一个符号作为散列键,则暗示它是不可变的,因此Ruby基本上可以将对象ID的(散列函数)与键的(散列)对象ID进行比较已经存储在哈希中。(快得多)。但问题在于Railsparams,它是HashWithIndifferentAccess的实例,如果我们编写params[:some_key]它会转换:som​​e_key到'some_key'然后它会尝试在参数散列中查找键。line159defconvert_key(key)key.ki

ruby-on-rails - vim/macvim : locate where a method/symbol is defined

我的大部分Ruby+RubyonRails开发都使用macvim/vim。目前是否有一种方法可以跳转到项目中定义方法的位置,即使它与调用它的位置不在同一个文件中?与语言无关的方式或特定于Ruby/Rails的方式均可。 最佳答案 我推荐使用ctags插件,BryanLiles制作了一个很好的截屏视频,介绍如何在Rails开发中使用它。http://smartic.us/2009/04/05/using-ctags-in-vim/来自他的页面:不那么完整的备忘单:^]–查找标签^T——倒退:tags–显示你去过的地方:tag–进入你的

ruby-on-rails - "No explicit conversion of Symbol into String"用于 rails 4.0.1 中的新记录(仅限)

在我的Rails4升级之后,尝试为我的任何ActiveRecord类创建一个新记录NoexplicitconversionofSymbolintoString例如,这里是我的链接的links_params方法deflink_paramsparams.require(:link).permit(:url_address,:group_id,:alt_text,:version_number,:position,:content_date,:verified_date)#Thisisline157end#line118is:@link=Link.new(link_params)但是我明白了

ruby-on-rails - 为什么我在运行 "gem pristine --all"后不断收到这些错误

我尝试运行gempristine--all并且我不断在控制台中获取它。当我运行gempristine--all我得到这个:权限被拒绝....我什至尝试为每个gem执行geminstall并且仍然得到这个:`Ignoringbinding_of_caller-0.7.2becauseitsextensionsarenotbuilt.Try:gempristinebinding_of_caller--version0.7.2Ignoringbyebug-5.0.0becauseitsextensionsarenotbuilt.Try:gempristinebyebug--version5.

ruby-on-rails - Rails ActiveRecord - update_all : how to update multiple fields at once with mixed type of arguments

我有一个用例,我想使用ActiveRecord::Relationupdate_all方法并指定要设置的几个字段。我使用update_all是因为可以更新很多条目,我不想将它们全部加载并一个一个地更新。其中一些需要直接的SQLSET语句,例如因为我根据另一列的值设置一列。是否有一个简单的语法与update_all一起使它可读,沿着这个=>MyModel.where(state::foo).update_all(['timespent=timespent+500',#Can'tbeanythingelsethanaSQLstatementstate::bar,#RegularRailsS

ruby - undefined symbol : SSLv3_method - . ../openssl.so 与 Ruby 和 ArchLinux

ArchLinux最近的OpenSSL更新破坏了Ruby,因为后者依赖于前者支持的SSLv3。使用OpenSSL的Ruby代码会在它们终止并出现如下错误时揭示问题:openssl.so:undefinedsymbol:SSLv3_method-.../openssl.so(LoadError)我将多个版本的Ruby与RVM一起使用这个问题适用于所有人。我遇到问题的OpenSSL版本是1.0.2h,但我相信它是在1.0.2g中引入的。版本1.0.2f工作正常。如何解决兼容性问题(不降级OpenSSL)? 最佳答案 问题是由于ArchL

ruby-on-rails - ruby rails : what does "equals" symbol mean as a parameter?

我一直在使用的一些开放源代码具有以下行作为函数声明:defparse_query(query=nil,options={},models=nil)“等于”符号对语句有什么影响?它只是使参数可选吗? 最佳答案 如果调用函数的人没有指定参数,它会设置参数的默认值。 关于ruby-on-rails-rubyrails:whatdoes"equals"symbolmeanasaparameter?,我们在StackOverflow上找到一个类似的问题: https:/

ruby-on-rails - 什么是 :domain symbol referring to when configuring action mailer?

Appname::Application.configuredoconfig.action_mailer.delivery_method=:smtp#typicalsmtp_settingsforgmailaccountconfig.action_mailer.smtp_settings={:address=>"smtp.gmail.com",:port=>587,:domain=>"domain.of.sender.net",:authentication=>"plain":user_name=>"spencecooley":password=>"secret":enable_sta

ruby-on-rails - 在 Ruby 中使用 Symbol#to_proc 简写的链接方法?

我想知道是否有一种方法可以使用(&:method)链接一个方法例如:array.reject{|x|x.strip.empty?}把它变成:array.reject(&:strip.empty?)我更喜欢速记符号,因为它的可读性。 最佳答案 不,没有缩写。你可以定义一个方法:defreally_empty?(x)x.strip.empty?end并使用method:array.reject(&method(:really_empty?))或使用lambda:really_empty=->(x){x.strip.empty?}arra