我在使用gem wice_grid时遇到了排序问题。我有一个发送消息的表/网格,它包含各种列。在消息控制器中:
def index
@messages_grid = initialize_grid( Message,
per_page: 40,
order: 'messages.created_at',
order_direction: 'desc' )
end
gem提供了一种排序功能,适用于大多数列。但是,对于涉及关联表(用户)的列,排序(和过滤)失败。如果我单击以对这些列进行排序,则会出现错误,该错误引用视图页面中的行:<%= grid(@messages_grid, show_filters: :when_filtered, html: {class: 'my-grid'}) do |g|
:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "users"
LINE 1: ...ECT "messages".* FROM "messages" ORDER BY "users
^
: SELECT "messages".* FROM "messages" ORDER BY "users"."username" asc LIMIT 40 OFFSET 0
此处关注的栏目在我的视图页面中如下:
g.column name: 'Sender', model: 'User', attribute: 'username', auto_reload: true, html: {id: 'grid-cells'} do |message|
unless message.sender.nil?
link_to(message.sender.username, user_path(message.sender))
end
end
是否有人理解为什么在涉及相关表时出现排序错误?我正在使用wice_grid 3.5.0,Rails 4.2.3,控制台不显示javascript错误。
答案 0 :(得分:0)
使用:include in:initialize_grid包含关联的表。 http://wicegrid.herokuapp.com/joining_tables