草庐IT

php - 在 Symfony2 中从 AuthenticationHandler 设置 flashMessage

全部标签

ruby - 设置 Ruby 变量(如果尚未定义)

在Ruby中,如果一个变量还没有被定义,你如何设置一个特定的值,如果它已经被定义了,你如何保留当前值? 最佳答案 虽然x||=value是一种表示“如果x包含一个虚假值,包括nil(在这个构造中隐含的ifx未定义因为它出现在赋值的左侧),给x赋值”,它就是这样做的。它大致等同于以下内容。(但是,x||=value不会像这段代码那样抛出NameError,可能并且它总是会为x赋值因为这段代码没有——关键是要看到x||=value对x中的任何假值,包括“默认”nil值):if!xx=valueend要查看变量是否真的没有被赋值,使用de

ruby - 动态设置 Ruby 对象的属性

如何在Ruby中动态设置对象属性,例如defset_property(obj,prop_name,prop_value)#needtodosomethinglike>obj.prop_name=prop_value#wecanuseevalbutI'llpreferafaster/cleaneralternative:eval"obj.#{prop_name}=#{prop_value}"end 最佳答案 使用send:defset_property(obj,prop_name,prop_value)obj.send("#{prop

ruby - 为什么 Matz 选择在 Ruby 中默认设置可变字符串?

这是这个问题的反面:Whycan'tstringsbemutableinJavaand.NET?在Ruby中做出这个选择仅仅是因为操作(追加等)对可变字符串有效,还是有其他原因?(如果只是效率,那似乎很奇怪,因为Ruby的设计似乎并没有高度重视促进高效实现。) 最佳答案 如您所见,这符合Ruby的设计。不可变字符串比可变字符串更有效——更少的复制,因为字符串被重复使用——但让程序员的工作更加困难。将字符串视为可变的很直观——您可以将它们连接在一起。为了解决这个问题,Java默默地将两个字符串的连接(通过+)转换为StringBuff

ruby-on-rails - 在长期运行的项目中重新设置 Rails 迁移的基线

我的意思是字典中的“rebase”,而不是git定义...我有一个大型的、长期运行的Rails项目,其中有大约250个迁移,管理所有这些变得有点笨拙。也就是说,我确实需要一个基础来在运行测试时从中清除和重建我的数据库。所以这些里面包含的数据很重要。有没有人有任何策略可以说,在设定点转储架构-归档所有旧迁移并重新开始新迁移。显然我可以使用rakeschema:dump-但实际上我需要一种方法让db:migrate首先加载模式,然后开始运行其余的迁移。我想继续使用迁移,因为它们在开发中非常有用,但是,我无法回过头来编辑2007年的迁移,所以保留它似乎很愚蠢。 最

ruby - 如何设置方法测试中使用的私有(private)实例变量?

给定一个包含几个实例变量和一些方法的类。一些实例变量设置为可通过attr_reader和attr_accessor访问。因此其他的都是私有(private)的。一些私有(private)实例变量在一个实例方法中设置,并在另一个方法中读取/使用。我使用RSpec进行测试。由于我对Ruby还是个新手,并且希望把所有事情都做好,所以我将我的测试定义为相当细粒度的。因此,我为每个实例方法获得了一个describeblock,它们本身被划分为context和it的子集。一般环境先决条件用before定义。但是,当测试其中一种使用但未设置私有(private)变量的方法时,我需要调用另一种方法,即

ruby - 警告! PATH 没有设置好,一般是 shell 初始化文件引起的

每当我转到包含.rvmrc文件的文件夹时,都会出现警告:Warning!PATHisnotproperlysetup,'/home/me/.rvm/gems/ruby-2.0.0-p247/bin'isnotavailable,usuallythisiscausedbyshellinitializationfiles-checkthemfor'PATH=...'entries,tofixrun:'rvmuseruby-2.0.0-p247'.我做了rvmuseruby​​-2.0.0-p247,但警告仍然存在。注意:没有错误,我可以很好地运行我的应用程序,但警告非常烦人。有什么想法吗?

ruby-on-rails - 设置 'EDITOR' 或 'BUNDLER_EDITOR' 环境变量

我试图在SublimeText中打开一个gem,但没有成功。我安装了bundler。这是正在发生的事情。在命令行中:$bundleopenDeviseToopenabundledgem,set$EDITORor$BUNDLER_EDITOR当我去Bundlerwebsite它说,Openthesourcedirectoryofthegivenbundledgem:$bundleopenGEMThisopensthesourcedirectoryoftheprovidedGEMinyoureditor.ForthistoworktheEDITORorBUNDLER_EDITORenvir

ruby-on-rails - 当您的 Gemfile 需要旧版本的 bundler 时如何将其设置为 `bundle install`?

我在一个有Gemfile的旧Rails项目中。我试图将gem添加到Gemfile和bundleinstall但出现错误:Bundlercouldnotfindcompatibleversionsforgem"bundler":InGemfile:rails(=3.0.0)rubydependsonbundler(~>1.0.0)rubyCurrentBundlerversion:bundler(1.1.5)ThisGemfilerequiresadifferentversionofBundler.它使用的Rails版本需要bundler~>1.0.0但我已经安装了1.1.5并且正在将它

ruby - 在本地覆盖 Vagrant 配置设置(每个开发)

我希望这个问题得到一般性的回答,但为了说明这一点,这里有一个用例:我将Vagrant用于一个简单的LMAP项目。我使用独立的Puppet进行配置。现在,可能有一些开发人员坐在代理后面,他们需要对VM进行一些额外的配置。我在Puppet方面有一些工作:我可以将代理IP(如果有的话)作为事实传递给Vagrantfile中的puppet,如果已设置,Puppet会做出相应的react。我唯一的问题是:开发人员如何为他们的开发环境指定/覆盖此设置,而不必更改Vagrantfile(它在版本控制下并且必须保持开发环境中立)?如果人们可以覆盖文件中的一些Vagrant设置,那就太棒了。Vagran

ruby - 设置Ruby中 float 的显示精度

在Ruby中可以设置float的显示精度吗?类似于:z=1/3z.to_s#=>0.33333333333333z.to_s(3)#=>0.333z.to_s(5)#=>0.33333或者我是否必须覆盖Float的to_s方法? 最佳答案 z.round(2)或x.round(3)是最简单的解决方案。参见http://www.ruby-doc.org/core-1.9.3/Float.html#method-i-round.也就是说,这只会确保它不超过那么多位数。在1/3的情况下没问题,但如果你说0.25.round(3)你会得到0