我有这个索引动作:
def index
limit = params[:limit]
page = params[:page]
sort = params[:sort].split(',')
@term = nil
if params[:search]
@term = params[:search]
@lessons = policy_scope(Lesson).search(@term)
.order("#{sort[0]} #{sort[1].upcase}")
.paginate(page: page, per_page: limit)
else
@lessons = policy_scope(Lesson).order("#{sort[0]} #{sort[1].upcase}")
.paginate(page: page, per_page: limit)
end
end
它由带有 vuetify 数据表的 vuejs 前端提供,其目的是发送一组课程对象,由前端过滤和排序。
这适用于默认导轨..
但是,由于涉及到移动 gem,没有字段名称“title”例如或“title_en”,因此订单停止工作。在移动性中,您有一些“假列名”,它会自动处理它以搜索键值表中的值(https://github.com/shioyama/mobility#getting-started)
所以我让我坐下来,打开控制台,然后发现:
.order(title: :desc)
- 作品.order(title_en: :asc)
- 作品- 涉及字符串的所有内容,例如
.order('title DESC')
或.order('title_en ASC')
不起作用并导致错误,例如
ActionView::Template::Error (PG::UndefinedColumn: ERROR: column "title_en" does not exist LINE 1: SELECT "lessons".* FROM "lessons" ORDER BY title_en ASC LIMI...
有没有办法让这个工作?也许有什么可以产生title:
的'title'
?还是别的什么魔法?
谢谢!