Tôi nhận được một ngoại lệ khi sử dụng đá quý Memcached Evan Weaver (như memcached :: Rails.new) -> (http://github.com/fauna/memcached) và get_multi gọi()rubygem memcached + lỗi lập luận Rlibmemcached với 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'
tôi nhận thấy rằng memcached_get.h định nghĩa memcached_mget như:
memcached_return memcached_mget(memcached_st *ptr,
const char * const *keys,
const size_t *key_length,
size_t number_of_keys);
vì vậy, nó sẽ có vẻ key_length và number_of_keys bị thiếu (C của tôi là một chút gỉ, nhưng tôi giả sử đối số những người sẽ được yêu cầu).
Tuy nhiên, có vẻ như mã ruby liên quan (trong rails.rb) chỉ được đi qua 2 args:
def get_multi(keys, raw=false)
get_orig(keys, !raw)
end
UPDATE: Hóa ra đó là một lỗi trong các đá quý ruby, mà hiện đã được vá .
Vui lòng xem xét thêm câu trả lời của bạn vào phần "câu trả lời" và đánh dấu câu hỏi này là đã được giải quyết. – danlefree