Crear nueva entrada cuando se actualice el atributo de relación

Estoy creando una pequeña aplicación de práctica y me he quedado atascado. Tengo estos modelos en una relación de uno a muchos:

Boleto:

class Ticket < ActiveRecord::Base
  has_many :descriptions
end

Descripción

class Description < ActiveRecord::Base
  belongs_to :ticket
end

El propósito de la relación es que cada vez que actualice/edite la descripción de un ticket (solo si la descripción ha cambiado con respecto a la anterior), se crea una nueva entrada de descripción. Esto me da la posibilidad de tener un historial de descripciones anteriores de ese ticket. La descripción es una cadena que será un campo de texto en las vistas de edición y nuevo ticket.

Tengo problemas para implementar esto. Sé que lo más probable es que tenga que cambiar el código en el controlador de entradas y en el controlador de descripciones, pero no estoy seguro de cómo hacerlo. Tampoco estoy seguro de cómo implementar las vistas de tickets. Gracias por ayudarme a aprender Rails.

preguntado el 08 de marzo de 13 a las 21:03

Entonces, ¿cuál es la pregunta? -

Además, lo que estás tratando de hacer (sí, entiendo que estás aprendiendo, pero vale la pena señalarlo) puede lograrse a través de la popular rastro de papel joya. -

La pregunta es cómo implementar la funcionalidad explicada. Me inclinaría por usar paper_trail, pero solo necesito versionar este atributo, y aprender a hacer algo como esto sería beneficioso. -

1 Respuestas

tendría que agregar atributos de Descripción anidados a su formulario de Ticket

Aquí hay una buena redacción para usar accepts_nested_attributes_for: http://rubysource.com/complex-rails-forms-with-nested-attributes/

Y un video de Railscasts: http://railscasts.com/episodes/196-nested-model-form-revised

respondido 08 mar '13, 21:03

Gracias, esto es definitivamente lo que estaba buscando. Estoy tratando de implementarlo ahora. - sueño

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.