¿Cómo establecer la identificación de usuario_actual en un modelo polimórfico?

¿Cómo configuro el propietario de un registro de Rails en este caso complejo?

Tengo modelos de usuario, evento y etiqueta. La etiqueta es polimórfica.

En el formulario de evento tengo un :tag_ids selección múltiple.

En el controlador de creación de etiquetas tengo:

def create
  klass = [Event, ...some other models.].detect { |t| params["#{t.name.underscore}_id"]}
  @taggable = klass.find(params["#{klass.name.underscore}_id"])
  @tag = @taggable.tags.new(params[:tag]
  if save.......
end

Hasta ahora tan bueno. Pero el modelo Tag también tiene un :tagged_by_id columna, que necesito configurar para el usuario actual.

@tag = @taggable.tags.new(params[:tag].merge(tagged_by_id: current_user.id))

parece que debería funcionar. Pero no es así.

tagged_by_id = nil

¿Qué estoy haciendo mal?

Muchas Gracias

preguntado el 12 de junio de 12 a las 18:06

por favor elabora "no funciona" -

gracias shime no se establece nada en el atributo. tagged_by_id = nil. -

no hay problema :) No sé cómo funciona su código, pero comprobaría si se está guardando en una base de datos. es current_user.id incluso presente? no está lanzando ninguna excepción? debe verificar si se almacena en una base de datos a través de rails console. -

gracias shime Estoy trabajando completamente en la consola. ¿Puedes ver alguna razón por la que mi código de combinación anterior no funcionaría? Debería ser el equivalente de update_attributes correcto, ¿solo ocurre antes de guardar? -

0 Respuestas

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