2009-08-17 66 views
1

我先看看Monk和Ohm/Redis API,我有一个简单的问题。是否可以使用Ohm/Redis更新模型对象的属性?是否可以使用Ohm和Redis DB更新模型属性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 
 
相关问题