# Error: PG::UndefinedColumn. El campo personalizado no crea columna

**URL:** <https://meta.discourse.org/t/error-pg-undefinedcolumn-custom-field-not-creating-column/200115>\
**Category:** Support\
**Created:** [11 Agosto, 2021 21:01 UTC](https://meta.discourse.org/t/error-pg-undefinedcolumn-custom-field-not-creating-column/200115 "2021-08-11T21:01:54Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)\
**Post date:** [11 Agosto, 2021 21:01 UTC](https://meta.discourse.org/t/error-pg-undefinedcolumn-custom-field-not-creating-column/200115/1 "2021-08-11T21:01:54Z")

</div>

¿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](https://meta.discourse.org/t/how-to-add-custom-fields-to-models/184485). 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](https://meta.discourse.org/t/retrieve-topics-based-on-custom-field/199879/3).

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`:

```ruby
  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') }`)

---

_[View the full topic](https://meta.discourse.org/t/error-pg-undefinedcolumn-custom-field-not-creating-column/200115)._
