Tag: ruby

map(&:name)在Ruby中意味着什么?

我在RailsCast中找到了这段代码: def tag_names @tag_names || tags.map(&:name).join(‘ ‘) end map(&:name)是什么意思?

使case / switch返回值的快捷方式

我很确定我看到有人像下面的代码一样执行快捷方式(这不起作用) return case guess when guess > @answer then :high when guess < @answer then :low else :correct end 有谁知道我指的诀窍?

使用Ruby符号

我第一次尝试学习Ruby是在2年前,现在我又开始了。 我停止的原因是因为我无法理解Symbol类。 现在我再次处于同一点,完全迷失在何时以及为何使用Symbols。 我已经阅读了Stackoverflow上的其他post以及Google搜索的几个解释。 但我还不明白。 首先,我认为符号只是一种创建某种“命名常量”的方法,而不必像Java那样经历相同的过程。 :all 而不是使用任意值创建常量public static final String ALL = 8; 但是当你在例如attr_accessor :first_name etc.使用它时没有多大意义attr_accessor :first_name etc.符号只是一个轻量级的String类吗? 我在理解我应该如何解释,何时以及如何在我自己的类和框架中使用符号时遇到问题。

为什么我的Ruby’ri’工具不会在命令提示符下返回结果?

可能重复: ruby 1.9 ri问题 当我尝试在命令提示符窗口中使用Ruby的ri工具来获取有关类,方法等的帮助时,它似乎总是失败。 例如,如果我键入: ri Array 我收到一条消息说: Updating class cache with 0 classes… Nothing known about Array 我正在使用安装了Ruby 1.9.1p243(2009-07-16修订版24175)[i386-mingw32]的Vista 64。 我该怎么做才能配置ri工作?

什么会给我一些像ruby readline的默认值?

如果我想在终端上输入一个已输入默认值的提示,我该怎么做? Ruby的标准Readline.readline()允许我设置历史记录但不填写默认值(据我所知,至少) 我想要这样的东西: 码: input = Readline.readline_with_default(‘>’, ‘default_text’) 安慰: > default_text|

使用has_many:通过和构建

我有三个模型,都是为了一个has_many:通过关系。 它们看起来像这样: class Company < ActiveRecord::Base has_many :company_users, dependent: :destroy has_many :users, through: :company_users accepts_nested_attributes_for :company_users, :users end class CompanyUser < ActiveRecord::Base self.table_name = :companies_users #this is because this was originally a habtm relationship belongs_to :company belongs_to :user end class User < ActiveRecord::Base # this is a devise model, if that matters has_many :company_users, dependent: […]

ruby-debug由于某些原因无法创建Makefile,可能缺少必要的库和/或头文件

我的Rails是3.2.1.4 ,Ruby是1.9.3p448 。 我安装ruby-debug时遇到错误: Building native extensions. This could take a while… ERROR: Error installing ruby-debug: ERROR: Failed to build gem native extension. /home/hxh/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb Can’t handle 1.9.x yet *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. […]

什么::(双冒号)在Ruby中意味着什么?

什么在Ruby中意味着什么? 例如Foo::Bar 。

Ruby 1.9 Array.to_s的行为有何不同?

我写了一个快速的小应用程序,它采用一些代码的基本文件和一些关键字,一个替换关键字的文件,并输出一个替换关键字的新文件。 当我使用Ruby 1.8时,我的输出看起来很好。 现在使用Ruby 1.9时,我替换的代码中包含换行符而不是换行符。 例如,我看到类似的东西: [“\r\nDim RunningNormal_1 As Boolean”, “\r\nDim RunningNormal_2 As Boolean”, “\r\nDim RunningNormal_3 As Boolean”] 代替: Dim RunningNormal_1 As Boolean Dim RunningNormal_2 As Boolean Dim RunningNormal_3 As Boolean 我使用替换哈希{“KEYWORD”=> [“1”,“2”,“3”]}和替换行的数组。 我用这个块完成更换: resultingLibs.each do |x| libraryString.sub!(/((.*?))/im) do |match| x.each do |individual| individual.to_s end end end #for each resulting group of the repeatable pattern, […]

Rails Resque工作程序因PGError而失败:服务器意外关闭了连接

我在Ubuntu 9.10,Rails 2.3.4,ruby-ee 2010.01,PostgreSQL 8.4.2上有站点运行rails应用程序和resque worker在生产模式下运行 工人不断提出错误:PGError:服务器意外关闭了连接。 我最好的猜测是主resque进程建立与db的连接(例如authlogic在使用User.acts_as_authentic时执行此操作),同时加载rails app类,并且该连接在fork()ed进程中损坏(退出?),所以下一个分叉孩子们得到了一些破碎的全局ActiveRecord :: Base.connection 我可以使用此示例代码重现非常类似的行为,模仿resque worker中的fork / processing。 (AFAIK,libpq的用户建议无论如何都要在forked进程中重新创建连接,否则它不安全) 但是,奇怪的是当我使用pgbouncer或pgpool-II而不是直接的pgsql连接时,不会出现这样的错误。 那么,问题是我应该在哪里以及如何挖掘以找出为什么它被破坏以进行普通连接并且正在使用连接池? 还是合理的解决方法?