我需要为我的Rails应用程序创建一个配置选项.对于所有环境都可以是相同的.我发现,如果我把它设置好environment.rb,它可以在我的视图中使用,这正是我想要的......
environment.rb
AUDIOCAST_URI_FORMAT = http://blablalba/blabbitybla/yadda
Run Code Online (Sandbox Code Playgroud)
效果很好.
但是,我有点不安.这是一个很好的方法吗?有没有更时尚的方式?
我想使用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中快速生成长字符串的最佳方法是什么?这有效,但速度很慢:
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)
还有其他建议吗?
我的大多数测试都提出了以下内容,我不明白为什么.所有方法调用都会引发"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,以防你想自己运行测试.
所以,我发现了几个在Rails 2中查找随机记录的例子 - 首选方法似乎是:
Thing.find :first, :offset => rand(Thing.count)
Run Code Online (Sandbox Code Playgroud)
作为一个新手,我不知道如何使用Rails 3中的新查找语法来构造它.
那么,找到随机记录的"Rails 3 Way"是什么?
我如何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)
我看了很多关于互联网的事情并没有找到(或者更可能错过)一种方法来做到这一点,虽然我几乎肯定我前几天毫无困难地做了这件事.
谢谢!
我有一个新的mac pro(OS X 10.9.5),我可以从头开始设置.我想安装RVM,它要做的第一件事就是:
安装mpapis公钥(可能需要
gpg2和或sudo)Run Code Online (Sandbox Code Playgroud)gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
当我尝试时,我得到了:
gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
zsh: command not found: gpg
Run Code Online (Sandbox Code Playgroud)
我试图找到一个很好的指导如何克服这一点,看起来也值得信赖,但我没有运气.
有人可以解释是什么gpg,为什么我还没有它,以及如何以正确的方式得到它.
我正在尝试在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方法来获取已安装宝石的列表?
我想解析输出gem list.有没有不同的方法来做到这一点?