¿Los campos personalizados de temas agregan una columna al modelo de temas? Estoy recibiendo un error que dice que no, y estoy tratando de averiguar qué hacer al respecto.
He creado un campo personalizado de tema en el entorno de desarrollo, siguiendo este enlace. Llamémoslo fun_level. El campo personalizado parece haberse creado correctamente en desarrollo, porque si hago una llamada AJAX para obtener un tema que creé después de agregar el campo personalizado (por ejemplo, ajax("/t/112.json")), funciona: los datos del tema se devuelven mostrando el campo fun_level con el valor que ingresé.
Pero ahora necesito encontrar una manera de recuperar programáticamente todos los temas con un valor específico para el campo personalizado (por ejemplo, obtener una lista de todos los temas donde fun_level = ‘super-duper-fun’).
He considerado hacer una llamada ajax("/search") para eso, pero aún no he logrado que funcione.
Otro método que pensé fue usar Rails clásico: crear un controlador y, cuando vaya a una ruta determinada (/fun_levels/:fun_level), llamar al siguiente método show:
def show
respond_to do |format|
format.json { render json: Topic.where(fun_level: 'super-duper-fun') }
end
end
Luego, llamo a ajax("/fun_levels/super-duper-fun.json")…
Esta estrategia de método show del controlador y llamada AJAX funciona si estoy buscando temas basándome en un ID, título, etc. Pero cuando uso el código anterior: Topic.where(fun_level: 'super-duper-fun'), se produce un error interno del servidor. Y los registros indican:
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: la columna topics.fun_level no existe LINE 1: ... "topics" WHERE "topics"."deleted_at" IS NULL AND "topics"."...
¿Existe alguna manera de obtener temas basados en un campo personalizado utilizando un método de controlador, como el que he proporcionado arriba? (como mi: { render json: Topic.where(fun_level: 'super-duper-fun') })