Ответ 1
Может быть, это ошибка в камне Ruby?; -)
Я получаю исключение при использовании 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'
Я заметил, что 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
UPDATE: Оказывается, это была ошибка в рубиновой жемчужине, которая теперь исправлена.
Может быть, это ошибка в камне Ruby?; -)