使用memcache_mget()Memcached ruby​​gem + Rlibmemcached参数错误

Kyl*_*yle 13 c ruby memcached rubygems

我在使用Evan Weaver的Memcached gem(如Memcached :: Rails.new) - >(http://github.com/fauna/memcached)并调用get_multi()时遇到异常

ArgumentError: wrong # of arguments(2 for 4)
from /usr/local/lib/ruby/gems/1.8/gems/memcache-auth-1.0.1/lib/memcached/memcached.rb:384:in `memcached_mget'
from /usr/local/lib/ruby/gems/1.8/gems/memcache-auth-1.0.1/lib/memcached/memcached.rb:384:in `get_orig'
from /usr/local/lib/ruby/gems/1.8/gems/memcache-auth-1.0.1/lib/memcached/rails.rb:40:in `get_multi'
Run Code Online (Sandbox Code Playgroud)

我注意到memcached_get.h将memcached_mget定义为:

memcached_return memcached_mget(memcached_st *ptr, 
                            const char * const *keys, 
                            const size_t *key_length, 
                            size_t number_of_keys);
Run Code Online (Sandbox Code Playgroud)

所以,似乎缺少key_length和number_of_keys(我的C有点生疏,但我认为那些将是必需的参数).

但是,看起来相关的ruby代码(在rails.rb中)只传递2个args:

def get_multi(keys, raw=false)
  get_orig(keys, !raw)
end
Run Code Online (Sandbox Code Playgroud)

更新:事实证明这是红宝石宝石中的一个错误,现在已经修补了.

Ing*_*son 1

这可能是 Ruby gem 中的错误吗?;-)