标签: ruby

为我的Rails应用程序创建自定义配置选项的最佳方法?

我需要为我的Rails应用程序创建一个配置选项.对于所有环境都可以是相同的.我发现,如果我把它设置好environment.rb,它可以在我的视图中使用,这正是我想要的......

environment.rb

AUDIOCAST_URI_FORMAT = http://blablalba/blabbitybla/yadda
Run Code Online (Sandbox Code Playgroud)

效果很好.

但是,我有点不安.这是一个很好的方法吗?有没有更时尚的方式?

ruby environment configuration ruby-on-rails

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

每个Ruby中的自动计数器?

我想使用for-each和counter:

i=0
for blah in blahs
    puts i.to_s + " " + blah
    i+=1
end
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

注意:我不知道blahs是数组还是哈希,但必须做的blahs[i]不会使它更性感.我也想知道如何i++用Ruby 编写.


从技术上讲,Matt和Squeegy的答案首先出现了,但是我给了paradoja最好的答案,所以在SO上点了几点.他的回答还有关于版本的说明,这仍然是相关的(只要我的Ubuntu 8.04使用Ruby 1.8.6).


应该使用puts "#{i} #{blah}"哪个更简洁.

ruby syntax

131
推荐指数
4
解决办法
7万
查看次数

在Ruby中如何生成一长串重复文本?

在ruby中快速生成长字符串的最佳方法是什么?这有效,但速度很慢:

str = ""
length = 100000
(1..length).each {|i| str += "0"}
Run Code Online (Sandbox Code Playgroud)

我还注意到,创建一个相当长的字符串,然后将其附加到现有字符串,达到所需的长度会更快:

str = ""
incrementor = ""
length = 100000
(1..1000).each {|i| incrementor += "0"}
(1..100).each {|i| str += incrementor}
Run Code Online (Sandbox Code Playgroud)

还有其他建议吗?

ruby string

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

所有Ruby测试都提出了:nil的未定义方法`authenticate':NilClass

我的大多数测试都提出了以下内容,我不明白为什么.所有方法调用都会引发"authenticate"错误.我检查了代码是否有一个名为"authenticate"的方法,但没有这样的方法.

  1) Admin::CommentsController handling GET to index is successful
     Failure/Error: get :index
     undefined method `authenticate!' for nil:NilClass
     # ./spec/controllers/admin/comments_controller_spec.rb:9:in `block (3 levels) in <top (required)>'


  124) PostsController handling GET for a single post should render show template
     Failure/Error: get :show, :year => '2008', :month => '01', :day => '01', :slug => 'a-post'
     undefined method `authenticate' for nil:NilClass
     # ./app/controllers/application_controller.rb:18:in `set_current_user_for_model'
     # ./spec/controllers/posts_controller_spec.rb:131:in `do_get'
     # ./spec/controllers/posts_controller_spec.rb:140:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

该项目可以在那里找到=> https://github.com/agilepandas/enki,以防你想自己运行测试.

ruby testing rspec ruby-on-rails devise

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

Rails 3:获取随机记录

所以,我发现了几个在Rails 2中查找随机记录的例子 - 首选方法似乎是:

Thing.find :first, :offset => rand(Thing.count)
Run Code Online (Sandbox Code Playgroud)

作为一个新手,我不知道如何使用Rails 3中的新查找语法来构造它.

那么,找到随机记录的"Rails 3 Way"是什么?

ruby random activerecord ruby-on-rails ruby-on-rails-3

131
推荐指数
6
解决办法
7万
查看次数

Ruby url编码字符串

我如何URI ::编码一个字符串,如:

\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a
Run Code Online (Sandbox Code Playgroud)

要获得如下格式:

%124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A
Run Code Online (Sandbox Code Playgroud)

(根据RFC 1738)

这是我尝试过的:

irb(main):123:0> URI::encode "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a"
ArgumentError: invalid byte sequence in UTF-8
    from /usr/local/lib/ruby/1.9.1/uri/common.rb:219:in `gsub'
    from /usr/local/lib/ruby/1.9.1/uri/common.rb:219:in `escape'
    from /usr/local/lib/ruby/1.9.1/uri/common.rb:505:in `escape'
    from (irb):123
    from /usr/local/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

也,

irb(main):126:0> CGI::escape "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a"
ArgumentError: invalid byte sequence in UTF-8
    from /usr/local/lib/ruby/1.9.1/cgi/util.rb:7:in `gsub'
    from /usr/local/lib/ruby/1.9.1/cgi/util.rb:7:in `escape'
    from (irb):126
    from /usr/local/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我看了很多关于互联网的事情并没有找到(或者更可能错过)一种方法来做到这一点,虽然我几乎肯定我前几天毫无困难地做了这件事.

谢谢!

ruby string uri ruby-on-rails urlencode

131
推荐指数
7
解决办法
15万
查看次数

如何在RVM安装期间解决"gpg:command not found"错误?

我有一个新的mac pro(OS X 10.9.5),我可以从头开始设置.我想安装RVM,它要做的第一件事就是:

安装mpapis公钥(可能需要gpg2和或sudo)

gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
Run Code Online (Sandbox Code Playgroud)

当我尝试时,我得到了:

gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
zsh: command not found: gpg
Run Code Online (Sandbox Code Playgroud)

我试图找到一个很好的指导如何克服这一点,看起来也值得信赖,但我没有运气.

有人可以解释是什么gpg,为什么我还没有它,以及如何以正确的方式得到它.

ruby macos command-line gnupg rvm

131
推荐指数
5
解决办法
8万
查看次数

130
推荐指数
6
解决办法
12万
查看次数

在Ubuntu上安装rmagick

我正在尝试在Ubuntu 10.04上安装RMagick.看着这里却没有快乐.我甚至从源代码编译和安装了ImageMagick,但是当我尝试使用RubyGems安装RMagick时,这里的说明仍然没有帮助我.我收到了这个错误:

carcher@carcher-laptop:~/Code/temp/RMagick-2.13.1$ sudo gem install rmagick
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
 ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
 from extconf.rb:1


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/rmagick-2.13.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/rmagick-2.13.1/ext/RMagick/gem_make.out
carcher@carcher-laptop:~/Code/temp/RMagick-2.13.1$ 
Run Code Online (Sandbox Code Playgroud)

这是什么意思呢?:)我是Ruby和RubyGems的新手,所以请保持温柔.我的设置如下:

Ruby: 1.8.7
RubyGems: 1.3.7
Run Code Online (Sandbox Code Playgroud)

我几乎没有想法(也累了!).我厌倦了使用上面的链接从源代码编译RMagick但它失败了,因为没有./configure脚本:(

任何和所有帮助表示赞赏!

ruby linux ubuntu rmagick imagemagick

130
推荐指数
7
解决办法
8万
查看次数

已安装的宝石列表?

有没有我可以调用的Ruby方法来获取已安装宝石的列表?

我想解析输出gem list.有没有不同的方法来做到这一点?

ruby rubygems

130
推荐指数
7
解决办法
15万
查看次数