Os campos personalizados de tópico adicionam uma coluna ao modelo de tópicos? Estou recebendo um erro dizendo que não, e estou tentando descobrir o que fazer a respeito.
Criei um campo personalizado de tópico em desenvolvimento, seguindo este guia. Vamos chamá-lo de fun_level. O campo personalizado parece ter sido criado com sucesso em desenvolvimento, pois se eu fizer uma chamada AJAX para buscar um tópico que criei após adicionar o campo personalizado — como ajax("/t/112.json") — funciona: os dados do tópico retornam mostrando o campo fun_level com o valor que inseri.
Mas agora preciso encontrar uma maneira de recuperar programáticamente todos os tópicos com um determinado valor para o campo personalizado (por exemplo, obter uma lista de todos os tópicos onde fun_level = ‘super-duper-fun’).
Considerei fazer uma ajax("/search") para isso, mas ainda não consegui fazer funcionar.
Outro método que pensei foi usar o Rails clássico: criar um controlador e, ao acessar um determinado caminho (/fun_levels/:fun_level), chamar o seguinte método show:
def show
respond_to do |format|
format.json { render json: Topic.where(fun_level: 'super-duper-fun') }
end
end
Em seguida, chamo ajax("/fun_levels/super-duper-fun.json")…
Essa estratégia de método show/chamada AJAX do controlador funciona se eu estiver buscando tópicos com base em um ID, título, etc. Mas quando uso o código acima — Topic.where(fun_level: 'super-duper-fun') — ele retorna um erro interno do servidor. E os logs dizem:
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column topics.fun_level does not exist LINE 1: ... "topics" WHERE "topics"."deleted_at" IS NULL AND "topics"."...
Existe alguma maneira de obter tópicos com base em um campo personalizado usando um método de controlador, como o que forneci acima? (como no meu: { render json: Topic.where(fun_level: 'super-duper-fun') })