主题自定义字段是否会在主题模型中添加一列?我收到了一个错误提示说没有,我正在尝试找出解决办法。
我按照此处的说明在开发环境中创建了一个主题自定义字段。我们称之为 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")……
如果我是根据 ID、标题等查找主题,这个“控制器 show 方法/AJAX 调用”策略是有效的。但是当我使用上述代码 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') })