2009-08-17 6 views
1

Я впервые взглянул на Monk и API Ohm/Redis, и у меня есть простой вопрос. Возможно ли обновлять атрибуты объектов модели с помощью Ohm/Redis?Можно ли обновлять атрибуты модели с помощью Ohm и Redis DB Ruby?

class Event < Ohm::Model 
    attribute :name 
    index :name 
end 

Event.create(:name => "A mistake made here...") 

@event = Event.find(:id, 25) 
@event.name = "I want to edit my mistake... but do not know how" 
@event.save 

Используя API Ом я могу сделать следующее

require 'ohm' 
Ohm.connect 
Ohm.redis.set :foo, "bar" 
Ohm.redis.set :foo, "bat" 

Не могу найти любую информацию в документации о том, как достичь этого. Заранее спасибо!

ответ

1

Я не уверен, что полностью понимаю, о чем вы спрашиваете, но со следующим кодом обновляется атрибут.

require 'rubygems' 
require 'ohm' 

Ohm.connect 

class Event < Ohm::Model 
    attribute :name 
    index :name 
end 

Event.create(:name => "A mistake made here...") 

@event = Event.find(:name => "A mistake made here...").first 
puts @event.inspect 
@event.name = "I want to edit my mistake... but do not know how" 
@event.save 
puts @event.inspect 

@event2 = Event.find(:name => "I want to edit my mistake... but do not know how").first 
puts @event2.inspect 

я тогда получаю:

#<Event:1 name="A mistake made here..."> 
#<Event:1 name="I want to edit my mistake... but do not know how"> 
#<Event:1 name="I want to edit my mistake... but do not know how"> 

Так имя атрибута обновляется.

1

Вы должны быть в состоянии сделать это, используя обычный #save. Можете ли вы опубликовать больше контекста, чтобы узнать, почему он не работает?

 

event = Event[25] 
event.name = "Updated name" 
event.save