小编And*_*all的帖子

什么是Ruby <=>(太空船)运营商?

什么是Ruby <=>(宇宙飞船)运营商?运营商是否通过其他语言实施?

ruby operators comparison-operators spaceship-operator

250
推荐指数
5
解决办法
9万
查看次数

如何在Ruby中输出前导零?

我正在从Ruby脚本输出一组编号的文件.这些数字来自递增计数器,但为了使它们在目录中很好地排序,我想在文件名中使用前导零.换一种说法

file_001 ...

代替

file_1

在将数字转换为字符串时,是否有一种简单的方法可以添加前导零?(我知道我可以"如果少于10 ......如果少于100").

ruby

228
推荐指数
5
解决办法
10万
查看次数

用bundler更新一个gem

我使用bundler来管理我的rails应用程序中的依赖项,并且我在git存储库中托管了一个gem,如下所示:

gem 'gem-name', :git => 'path/to/my/gem.git'
Run Code Online (Sandbox Code Playgroud)

为了更新这个gem,我执行bundle update但它也更新了Gemfile中提到的所有gem.那么更新一个特定宝石的命令是什么?

ruby rubygems bundler

222
推荐指数
5
解决办法
10万
查看次数

Ruby的dup和clone方法有什么区别?

Ruby的文档的dup说:

在一般情况下,clonedup可能在派生类不同的语义.虽然clone用于复制对象(包括其内部状态),但dup通常使用后代对象的类来创建新实例.

但是当我做一些测试时,我发现它们实际上是相同的:

class Test
   attr_accessor :x
end

x = Test.new
x.x = 7
y = x.dup
z = x.clone
y.x => 7
z.x => 7
Run Code Online (Sandbox Code Playgroud)

那么这两种方法有什么区别?

ruby clone dup

213
推荐指数
4
解决办法
8万
查看次数

在Ruby中将整数转换为十六进制字符串

是否有内置的方法将Ruby中的整数转换为十六进制等效?

与之相反的是String#to_i:

"0A".to_i(16) #=>10
Run Code Online (Sandbox Code Playgroud)

或许像:

"0A".hex #=>10
Run Code Online (Sandbox Code Playgroud)

我知道如何自己动手,但使用内置的Ruby函数效率可能更高.

ruby hex base-conversion

204
推荐指数
5
解决办法
13万
查看次数

Ruby on Rails和Rake问题:未初始化的常量Rake :: DSL

我有一个非常令人沮丧的问题:耙子是愚蠢的.

以下是问题的解决方法:

$ rails new test_app
$ rails generate scaffold new_scaffold field1:string field2:text
Run Code Online (Sandbox Code Playgroud)

这两个工作都很好,但是当我这样做时,

$ rake db:migrate
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

(in /home/mikhail/test_app)
rake aborted!
uninitialized constant Rake::DSL
/usr/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:6:in `<module:Rake>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:3:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `require'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `initialize_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
/home/mikhail/test_app/Rakefile:7:in `<top (required)>'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/lib/ruby/1.9.1/rake.rb:2006:in …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails

190
推荐指数
9
解决办法
9万
查看次数

警告:隐式声明函数

我的编译器(GCC)给了我警告:

警告:隐式声明函数

请帮我理解为什么会这样.

c compiler-warnings

180
推荐指数
3
解决办法
59万
查看次数

"或"和||之间的区别 在Ruby?

Ruby中的运算符or||运算符有什么区别?或者只是偏好?

ruby operators

169
推荐指数
5
解决办法
9万
查看次数

合并两个ActiveRecord :: Relation对象

假设我有以下两个对象:

first_name_relation = User.where(:first_name => 'Tobias') # ActiveRecord::Relation
last_name_relation  = User.where(:last_name  => 'Fünke') # ActiveRecord::Relation
Run Code Online (Sandbox Code Playgroud)

是否有可能将两个关系结合起来产生一个ActiveRecord::Relation包含两个条件的对象?

注意:我知道我可以链接这些行为来获得这种行为,我真正感兴趣的是我有两个独立的ActiveRecord::Relation对象.

ruby-on-rails arel rails-activerecord

165
推荐指数
7
解决办法
9万
查看次数

如何在Javascript中舍入一个数字?

我想使用Javascript来舍入一个数字.由于这个数字是货币,我希望它像这些例子一样向上舍入(2个小数点):

  • 192.168 => 192.20
  • 192.11 => 192.20
  • 192.21 => 192.30
  • 192.26 => 192.30
  • 192.20 => 192.20

如何使用Javascript实现这一目标?内置的Javascript函数将根据标准逻辑(小于和大于5)向上舍入数字.

javascript rounding

156
推荐指数
4
解决办法
17万
查看次数