Добавляют ли пользовательские поля тем столбец в модель тем? У меня возникает ошибка с сообщением «нет», и я пытаюсь разобраться, что с этим делать.
Я создал пользовательское поле для темы в среде разработки, следуя этой инструкции. Назовём его fun_level. Поле, похоже, успешно создано в среде разработки, потому что, если я делаю AJAX-запрос для получения созданной мной темы после добавления этого поля — например, ajax("/t/112.json") — всё работает: возвращаются данные темы, включающие поле fun_level со значением, которое я ввёл.
Но теперь мне нужно найти способ программно получить все темы с определённым значением пользовательского поля (например, получить список всех тем, где fun_level = ‘super-duper-fun’).
Я рассматривал возможность использования ajax("/search") для этого, но пока не смог заставить это работать.
Другой метод, который я придумал, — использовать классический Rails: создать контроллер и, при переходе по определённому пути (/fun_levels/:fun_level), вызвать следующий метод show:
def show
respond_to do |format|
format.json { render json: Topic.where(fun_level: 'super-duper-fun') }
end
end
Затем я вызываю ajax("/fun_levels/super-duper-fun.json")…
Эта стратегия с методом show контроллера и AJAX-запросом работает, если я ищу темы по id, заголовку и т.п. Но когда я использую код выше — Topic.where(fun_level: 'super-duper-fun') — возникает внутренняя ошибка сервера. В логах указано:
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column topics.fun_level does not exist LINE 1: ... "topics" WHERE "topics"."deleted_at" IS NULL AND "topics"."...
Есть ли способ получить темы на основе пользовательского поля с помощью метода контроллера, как я показал выше? (например, мой вариант: { render json: Topic.where(fun_level: 'super-duper-fun') })?