为什么YAML.load返回错误的值?
ruby-1.9.2-p0 :006 > a = YAML.load('merchant_id: 014213245611111')
=> {"merchant_id"=>843333440073}
ruby-1.9.2-p0 :007 > a["merchant_id"]
=> 843333440073
Run Code Online (Sandbox Code Playgroud)
我在ruby 1.9.2-p0,rvm,ubuntu10.10,64bit.
a = [2,4,5]
a.count-1 => 2
a.count - 1 => 2
Run Code Online (Sandbox Code Playgroud)
但
a.count -1 => 0
Run Code Online (Sandbox Code Playgroud)
是什么导致这种行为?如果a是整数(而不是数组),为什么不会发生?
另外,我注意到方法名称和后面的括号之间不能有空格(对于参数).这是为什么?
Ruby 1.9.2
我在RVM中安装了1.9.2 Ruby.当我做一个宝石列表时,我得到了这个:
bundler (1.1.3)
Run Code Online (Sandbox Code Playgroud)
当我尝试删除它时,我得到:
gem uninstall bundler
INFO: gem "bundler" is not installed
Run Code Online (Sandbox Code Playgroud)
当我尝试为我的应用程序运行bundle install时,我得到:
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 3.0.1) ruby depends on
bundler (~> 1.0.0) ruby
Current Bundler version:
bundler (1.1.3)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Run Code Online (Sandbox Code Playgroud)
我试过卸载1.9.2,但没有帮助.
我想在我的Windows Vista机器上安装Ruby1.9.2/Rails3.0.3,并将PostgreSQL 9.0作为我的数据库.
我在网上看到了许多不同的指示,说明哪些有效,哪些无效.
谁能告诉我必须安装哪些gem才能让Ruby1.9.2/Rails 3.0.3在Windows Vista上驱动PostgreSQL 9.0?
我感谢你能给我的任何帮助.
之前我在Ruby 1.8.7中使用过rubyzip gem,但我听说rubyzip与ruby 1.9.2不兼容.
什么zip库与Ruby 1.9.2一起使用?
为什么这个:
<%= foo("???????") %>
Run Code Online (Sandbox Code Playgroud)
在视图中工作,但这:
foo("???????")
Run Code Online (Sandbox Code Playgroud)
帮助不起作用?
Error: syntax error, unexpected $end, expecting ')'
Run Code Online (Sandbox Code Playgroud)
文件的编码是UTF-8.
我正在尝试在我的Ubuntu 11.04机器上使用Nginx设置Unicorn.我从源代码编译Ruby,(之前尝试过RVM,但有很多问题),现在安装unicorn(以及rails 3.1.0 RC4)之后,它有一个奇怪的问题,它会崩溃,然后尝试运行崩溃的部分反复,或至少是它的样子.
root@server-pc:/usr/local/blog# unicorn_rails
I, [2011-07-15T13:14:50.577149 #23269] INFO -- : listening on addr=0.0.0.0:8080 fd=3
I, [2011-07-15T13:14:50.577677 #23269] INFO -- : worker=0 spawning...
I, [2011-07-15T13:14:50.579412 #23269] INFO -- : master process ready
I, [2011-07-15T13:14:50.581087 #23271] INFO -- : worker=0 spawned pid=23271
I, [2011-07-15T13:14:50.581599 #23271] INFO -- : Refreshing Gem list
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.15/lib/bundler/runtime.rb:31:in `block in setup': You have already activated rack 1.3.1, but your Gemfile requires rack 1.3.0. Consider using bundle exec. (Gem::LoadError)
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `block in each'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in …
Run Code Online (Sandbox Code Playgroud) deployment unicorn ruby-1.9.2 ubuntu-11.04 ruby-on-rails-3.1
给出以下代码:
class ArrayProxy < BasicObject
def initialize
@array = []
end
def foo
puts 'foo'
end
def method_missing(*args, &block)
@array = @array.send(*args, &block)
end
def self.method_missing(*args, &block)
new.send(*args, &block)
end
end
Run Code Online (Sandbox Code Playgroud)
为什么将'foo'的调用委托给数组?
ruby-1.9.2-p290 :018 > ArrayProxy.new << 1
=> [1]
ruby-1.9.2-p290 :019 > ArrayProxy << 1
=> [1]
ruby-1.9.2-p290 :020 > ArrayProxy.new.foo
foo
=> nil
ruby-1.9.2-p290 :021 > ArrayProxy.foo
NoMethodError: undefined method `foo' for []:Array
Run Code Online (Sandbox Code Playgroud) 使用ruby 1.9.2-p290.我遇到了一个试图解析如下URI的问题:
require 'uri'
my_uri = "http://www.anyserver.com/getdata?anyparameter={330C-B5A2}"
the_uri = URI.parse(my_uri)
Run Code Online (Sandbox Code Playgroud)
发出以下错误:
URI::InvalidURIError: bad URI(is not URI?)
Run Code Online (Sandbox Code Playgroud)
我需要一个不同的解决方案,而不是像每次这样编码花括号:
new_uri = URI.encode("http://www.anyserver.com/getdata?anyparameter={330C-B5A2}")
=> "http://www.anyserver.com/getdata?anyparameter=%7B330C-B5A2%7D"
Run Code Online (Sandbox Code Playgroud)
现在我可以照常解析new_uri,但每次需要时都必须这样做.没有每次都这样做,最简单的方法是什么?
我发布了自己的解决方案,因为我没有看到这一点,因为我解决了它.
# Accepts URIs when they contain curly braces
# This overrides the DEFAULT_PARSER with the UNRESERVED key, including '{' and '}'
module URI
def self.parse(uri)
URI::Parser.new(:UNRESERVED => URI::REGEXP::PATTERN::UNRESERVED + "\{\}").parse(uri)
end
end
Run Code Online (Sandbox Code Playgroud)
现在我可以使用带有花括号的uri的URI.parse(uri),并且不会抛出任何错误.
我想使用ruby代码以像素(px)检索浏览器的宽度和高度.我不知道该怎么做.
请帮忙
ruby-1.9.2 ×10
ruby ×5
bundler ×1
curly-braces ×1
delegates ×1
deployment ×1
parsing ×1
postgresql ×1
ruby-1.9 ×1
rubyzip ×1
spaces ×1
ubuntu-11.04 ×1
unicorn ×1
uri ×1
yaml ×1
zip ×1