Pregunta

Estoy echando un primer vistazo a Monk y las API de Ohm/Redis y tengo una pregunta simple. ¿Es posible actualizar los atributos en los objetos modelo usando 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

Usando la API de OHM, puedo hacer lo siguiente

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

Parece que no puedo encontrar ninguna información en los documentos sobre cómo lograr esto. ¡Gracias por adelantado!

¿Fue útil?

Solución

No estoy seguro de entender completamente lo que está preguntando, pero con el siguiente código se actualiza el atributo.

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

Entonces entiendo:

#<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">

Entonces se actualiza el atributo de nombre.

Otros consejos

Deberías poder hacerlo usando un regular #save. ¿Puedes publicar más contexto para averiguar por qué no funciona?


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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top