我有一个项目,我需要对表字段使用国际化并提供 jsonapi。为此,我使用了Globalize Gem和JSON API Gem。
这是一个名为 category 的简单模型的代码:
class Category < ActiveRecord::Base
translates :name
validates :name, presence: true, uniqueness: { scope: :special_type }
end
class CategoryResource < JSONAPI::Resource
attributes :name, :special_type
end
当发出一个简单的请求时,/categories
响应很好:
{
"data": [
{
"id": "1",
"type": "categories",
"links": {
"self": "http://localhost:3000/v1/categories/1"
},
"attributes": {
"name": "test",
"special-type": "1"
}
},
...
]
}
但是,当尝试使用 `/categories?sort=name' 按名称排序时,出现异常:
"PG::UndefinedColumn: 错误: 列 category.name 不存在\nLINE 1: SELECT \"categories\".* FROM \"categories\" ORDER BY \"categories...\n ^\n: SELECT \" categories\".* FROM \"categories\" ORDER BY \"categories\".\"name\" ASC"
因为该列name
不在表中,categories
而是在表中category_translations
。我应该怎么做才能解决这个问题?