标签: ruby

rails将字符串转换为数字

我想知道在Rails中将带负号的字符串转换为数字的方便函数是什么.例如-1005.32

当我使用该.to_f方法时,数字变为1005负号,小数部分被忽略.

ruby ruby-on-rails

51
推荐指数
2
解决办法
8万
查看次数

如何测试阵列中的所有项目是否相同?

我可以生成几行代码,但是我想知道是否有一个很好的干净Rubyesque方式.如果我没有明确的,就是我正在寻找的是一个数组的方法,如果给定的(说),这将返回true [3,3,3,3,3]["rabbits","rabbits","rabbits"]但将返回false用[1,2,3,4,5]["rabbits","rabbits","hares"].

谢谢

ruby arrays

51
推荐指数
3
解决办法
2万
查看次数

检查整数是否在一个范围内

我不知道我是只是在寻找错误的东西或者是什么,但是有一种简单的方法来评估范围并使用(2..100)语法检查整数是否在该范围内.

例如,如果我的整数x = 100和我的范围是(0..200),我想要评估为真,我只是在寻找简单,简洁的红宝石方式.

ruby

51
推荐指数
4
解决办法
3万
查看次数

Ruby全局匹配regexp?

在其他语言regexp中,您可以使用// g进行全局匹配.

但是,在Ruby中:

"hello hello".match /(hello)/
Run Code Online (Sandbox Code Playgroud)

只捕获一个你好

我如何捕获所有你好?

ruby regex

51
推荐指数
3
解决办法
2万
查看次数

不能使用RVM安装的Ruby与sudo

我已成功配置RVM以使用Ruby 1.9.2,一切都很好.但是,当我尝试使用sudo它运行Ruby时,它说无法找到RVM或Ruby:

$ ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

$ sudo ruby -v
[sudo] password for administrator:
sudo: ruby: command not found
Run Code Online (Sandbox Code Playgroud)

这是正确的行为还是我的RVM配置错误?也许我应该使用系统范围的安装

ruby sudo rvm

51
推荐指数
2
解决办法
2万
查看次数

Ruby on Rails:alias_method_chain,它究竟做了什么?

我已经尝试阅读各种博客文章,试图解释alias_method_chain以及使用它的原因而不是使用它.特别是,我注意到:

http://weblog.rubyonrails.org/2006/4/26/new-in-rails-module-alias_method_chain

http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/

我仍然没有看到alias_method_chain的任何实际用途.任何人都可以解释一些事情.

1 - 它还在使用吗?
2 - 你何时会使用alias_method_chain?为什么?

ruby ruby-on-rails

51
推荐指数
3
解决办法
2万
查看次数

将 Cocoapods 更新到 1.13.0 后,它会抛出错误

我将 CocoaPods 更新到版本1.13.0. 现在,当我运行时pod install,它会抛出以下错误:

conversions.rb:108:in '<class:Array>': undefined method 'deprecator' for ActiveSupport:Module (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

我该如何修复它?

这是完整的错误:

bundler: failed to load command: pod (/opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/pod)
/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-7.1.0/lib/active_support/core_ext/array/conversions.rb:108:in `<class:Array>': undefined method `deprecator' for ActiveSupport:Module (NoMethodError)

  deprecate to_default_s: :to_s, deprecator: ActiveSupport.deprecator
                                                          ^^^^^^^^^^^
Did you mean?  deprecate_constant
    from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-7.1.0/lib/active_support/core_ext/array/conversions.rb:8:in `<top (required)>'
    from <internal:/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
    from <internal:/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
    from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/cocoapods-1.13.0/lib/cocoapods.rb:9:in `<top (required)>'
    from <internal:/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
    from <internal:/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
    from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/cocoapods-1.13.0/bin/pod:36:in `<top (required)>'
    from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/pod:25:in `load'
    from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/pod:25:in `<top (required)>'
    from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/cli/exec.rb:58:in `load'
    from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/cli/exec.rb:58:in …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ios cocoapods

51
推荐指数
5
解决办法
2万
查看次数

Ruby中的超级关键字

这段代码中的超级是什么?

def initialize options = {}, &block
  @filter = options.delete(:filter) || 1
  super
end
Run Code Online (Sandbox Code Playgroud)

据我所知,这就像递归调用函数一样,对吧?

ruby

50
推荐指数
3
解决办法
4万
查看次数

如何打破Ruby中的嵌套循环?

假设以下ruby代码:

bank.branches do |branch|
  branch.employees.each do |employee|
    NEXT BRANCH if employee.name = "John Doe"
  end
end
Run Code Online (Sandbox Code Playgroud)

NEXT BRANCH当然是伪代码.有没有一种方法可以打破一个父循环,例如在Perl中这样做的方式(通过使用循环标签)?

提前致谢.

ruby loops nested-loops

50
推荐指数
4
解决办法
3万
查看次数

在[](Gem :: LoadError)中找不到rails(> = 0)

安装rvm,更新.gmrc文件,更新rubygems并运行后gem install rails -v ">=3.1.0rc",我现在似乎已经完全搞乱了:

$ rails -v
/usr/local/lib/site_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find rails (>= 0) amongst [] (Gem::LoadError)
    from /usr/local/lib/site_ruby/1.8/rubygems/dependency.rb:256:in `to_spec'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:1182:in `gem'
    from /var/lib/gems/1.8/bin/rails:18
Run Code Online (Sandbox Code Playgroud)
myhome@myhome-mini:~$ gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 1.6.2
  - RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [i686-linux]
  - INSTALLATION DIRECTORY: /home/myhome/gems
  - RUBY EXECUTABLE: /home/myhome/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
  - EXECUTABLE DIRECTORY: /home/myhome/gems/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /home/myhome/gems
     - /usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-on-rails rvm ruby-on-rails-3

50
推荐指数
4
解决办法
5万
查看次数