Est-il possible de mettre à jour les attributs du modèle à l'aide d'Ohm et Redis DB est Ruby?
Question
Je jette un premier coup d'œil à Monk et aux API ohm / redis et j'ai une question simple. Est-il possible de mettre à jour les attributs sur les objets du modèle à l'aide d'OHM / Redis?
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
En utilisant l'API OHM, je peux faire ce qui suit
require 'ohm'
Ohm.connect
Ohm.redis.set :foo, "bar"
Ohm.redis.set :foo, "bat"
Je n'arrive pas à trouver aucune information dans les documents sur la façon de l'accomplir. Merci d'avance!
La solution
Je ne suis pas sûr de bien comprendre ce que vous demandez, mais avec le code suivant, l'attribut est mis à jour.
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
J'obtiens alors:
#<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">
L'attribut de nom est donc mis à jour.
Autres conseils
Vous devriez pouvoir le faire en utilisant un régulier #save
. Pouvez-vous publier plus de contexte pour savoir pourquoi cela ne fonctionne pas?
event = Event[25]
event.name = "Updated name"
event.save
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow