草庐IT

new_variable

全部标签

ruby-on-rails - Ruby on Rails : pretty print for variable. hash_set.inspect ...有没有办法在控制台中漂亮地打印 .inspect ?

我发现自己在我的功能测试中做了很多puts.inpsects以确保我知道数据是如何格式化的......但是当散列对象中的每个条目之后没有新行时散列很难读取.无论如何,也许是一个gem?,pretty-print哈希?所以它看起来像这样:{entry1=>{entrey1.1=>1,entry1.2=>3},entry2=>3}而不是:{entry1=>{entrey1.1=>1,entry1.2=>3},entry2=>3}?谢谢! 最佳答案 你可以为此使用awesome_printgem。https://github.com/mi

ruby - 为什么要在 Ruby 中避免使用 @@class_variables?

我知道有人说在Ruby中应该避免使用类变量(例如@@class_var),而应该在类范围:defMyClass@@foo='bar'#Shouldnotdothis.@foo='bar'#Shoulddothis.end为什么在Ruby中不赞成使用类变量? 最佳答案 类变量经常因为它们在继承方面有时令人困惑的行为而经常受到诽谤:classFoo@@foo=42defself.foo@@fooendendclassBar23Bar.foo#=>23如果你改用类实例变量,你会得到:classFoo@foo=42defself.foo@f

Ruby 类 : initialize self vs. @variable

有人可以解释在定义类时初始化“self”和使用@variables之间的区别吗?举个例子classChild所以在这种情况下,我不能用@stuff替换self.stuff吗?有什么不同?此外,super()只是意味着Parent初始化方法中的任何内容,Child应该直接继承它,对吗? 最佳答案 一般来说,不是,self.stuff=stuff和@stuff=stuff是不一样的。前者在对象上调用stuff=方法,后者直接设置实例变量。前者调用一个可能是公共(public)的方法(除非在类中特别声明为私有(private)),而后者总

ruby-on-rails - 如何检查是否存在值不为 "undefined local variable or method"的变量?

这是一个常见的模式:如果变量不存在,我会得到一个未定义的局部变量或方法错误。现有代码有ifvariable_name.present?但这并没有说明变量不存在。我如何检查变量的值并说明它根本不存在?我试过:if(defined?mmm)thenifmmm.present?thenputs"true"endend但Ruby仍然检查内部mmm.present?并在它不存在时抛出“nosuchvariable”。我确信对此有一个共同的模式/解决方案。 最佳答案 将present?更改为!=''并使用&&运算符,它仅在第一个表达式为真时才尝

ruby - 什么时候需要将参数传递给 `Thread.new` ?

在线程外部定义的局部变量似乎从内部可见,因此Thread.new的以下两种用法似乎是相同的:a=:fooThread.new{putsa}#=>:fooThread.new(a){|a|putsa}#=>:foodocument举个例子:arr=[]a,b,c=1,2,3Thread.new(a,b,c){|d,e,f|arr[1,2,3]但由于a、b、c在创建的线程内部是可见的,所以这也应该与:arr=[]a,b,c=1,2,3Thread.new{d,e,f=a,b,c;arr[1,2,3]有区别吗?什么时候需要将局部变量作为参数传递给Thread.new?

ruby - 获取名称错误 : `format' is not allowed as an instance variable name when testing instance variable with rspec

我有以下测试:let(:client){Descat::Client.new}describe'poblacio'doit'shouldsetformatcorrectly'doclient.poblacio('v1','json','dades')expect(client.instance_variable_get(:format)).toeq('json')endend我有以下正在测试的代码:moduleDescatclassClientBASE_URL='http://api.idescat.cat/'definitialize(attributes={})attributes

ruby-on-rails - 如何在 Rails 中使用 "_blank"或 "_new"

在HTML中,如果我想在新窗口中打开链接,我会采用target="_blank",如下所示:如何将"_blank"添加到rails?这是我到目前为止的链接代码(但它当前在同一选项卡/窗口中打开): 最佳答案 我觉得是这样的参见http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to 关于ruby-on-rails-如何在Rails中使用"_blank"或"_new",我们在S

ruby - 在 Ruby 中,为什么等于 nil ("Date.new == nil") 返回 nil?

今天写一些rspec时,我遇到了一些意外的行为,将日期(和时间)实例与nil进行比较。这是一个使用原始ruby​​的示例(没有Rails或其他库):user@MacBook-Work~$ruby-vruby1.8.7(2008-08-11patchlevel72)[universal-darwin10.0]user@MacBook-Work~$irb>>1==nil=>false>>"string"==nil=>false>>:sym==nil=>false>>false==nil=>false>>[]==nil=>false>>{}==nil=>false>>Proc.new{}==

ruby-on-rails - 如何在 Ruby 2 中为 Net::HTTP::Post.new 请求指定读取超时

我有一个帖子发生在一个ruby​​脚本的rails应用程序上。该脚本创建一个变量请求作为request=Net::HTTP::Post.new(url.path)然后按如下方式使用request.content_type="application/json"request.body=JSON.generate(params)response=Net::HTTP.start(url.host,url.port){|http|http.request(request)}服务器端发生了相当多的处理,我收到了一个Net::ReadTimeout错误我尝试指定超时时间request.read_t

ruby-on-rails - 文字和构造函数之间的区别? ([] 与 Array.new 和 {} 与 Hash.new)

我很想知道[]和Array.new以及{}和Hash.new之间的更多区别我对它进行了相同的基准测试,似乎简写是赢家require'benchmark'many=500000Benchmark.bmdo|b|b.report("[]\t"){many.times{[].object_id}}b.report("Array.new\t"){many.times{Array.new.object_id}}b.report("{}\t"){many.times{{}.object_id}}b.report("Hash.new\t"){many.times{Hash.new.object_id