Memcached rubygem + ошибка аргумента Rlibmemcached с помощью memcache_mget () - PullRequest
13 голосов
/ 04 февраля 2010

Я получаю исключение при использовании гема Memcached Эвана Уивера (как 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'

Я заметил, что 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);

Итак, казалось бы, что key_length и number_of_keys отсутствуют (мой C немного ржавый, но я предполагаю, что это будут обязательные аргументы).

Однако, похоже, что связанный код ruby ​​(в rails.rb) передает только 2 аргумента:

def get_multi(keys, raw=false)
  get_orig(keys, !raw)
end

ОБНОВЛЕНИЕ: Оказалось, что это была ошибка в рубиновом самоцвете, которая была исправлена.

1 Ответ

1 голос
/ 24 ноября 2010

Может ли это быть ошибкой в ​​рубине? ; -)

...