【问题标题】:Sorting error when associated table关联表时排序错误
【发布时间】:2015-07-26 14:26:34
【问题描述】:

我在使用 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 错误。

【问题讨论】:

    标签: ruby-on-rails ruby sorting ruby-on-rails-4 wice-grid


    【解决方案1】:

    在 :initialize_grid 中使用 :include 来包含关联的表。 http://wicegrid.herokuapp.com/joining_tables

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      相关资源
      最近更新 更多