2011-07-10 47 views
0

這是一個後續行動這樣一個問題:Setting a dynamic field in Ohm/Redis如何在Redis/Ohm中將元素動態添加到列表中?

我無法找到我可以使用send()方法使用,動態地能夠對象添加到一個未知列表的方法。我嘗試添加該方法歐姆::模型類:

def add_to_list(name, obj) 
    send((name.to_s + '<<').to_sym, obj) 
end 
h.add_to_list(:player_ids, OhmSeat.create(seat_number: 5, value: 6)) 

,但我得到

undefined method `player_ids<<' 

有一個RPUSH方法,但我似乎無法直接調用它。這不起作用:

h.player_ids.rpush(OhmSeat.create(seat_number: 5, value: 6)) 
+0

是'player_ids <<'有效的方法名稱?你不是'foo.player_ids。'',是嗎? –

回答

2

由於@Andrew格林提到的,你應該做的:

def add_to_list(name, obj) 
    send(name) << obj 
end 

或只是做:

h.player_ids << OhmSeat.create(...) 
相關問題