2010-02-03 14 views
13

otrzymuję wyjątek, gdy przy użyciu Memcached gem Evan tkacki (jak memcached :: Rails.new) -> (http://github.com/fauna/memcached) i zawijających get_multi()Memcached rubygem + błąd argumentem Rlibmemcached z memcache_mget()

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' 

zauważyłem, że memcached_get.h definiuje memcached_mget jak:

memcached_return memcached_mget(memcached_st *ptr, 
          const char * const *keys, 
          const size_t *key_length, 
          size_t number_of_keys); 

Więc wydaje key_length i number_of_keys brakuje (mój C jest nieco zardzewiały, ale mam przypuszczenia te byłyby wymagane argumenty).

Jednak wygląda na to, powiązanego kodu Ruby (w rails.rb) przechodzi tylko 2 argumenty:

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

Aktualizacja: Okazuje się, że był to błąd w ruby ​​gem, która teraz została załatana .

+13

Proszę rozważyć dodanie swojej odpowiedzi w sekcji "odpowiedzi" i oznaczenie tego pytania jako rozwiązane. – danlefree

Odpowiedz

1

Czy to może być błąd w klejnocie Ruby? ;-)