2

让活跃的管理员对关联的子列进行排序很痛苦。我有一个具有相关“用户”的个人资料。

ActiveAdmin.register Profile, as: "Member" do

def scoped_collection
  end_of_association_chain.includes(:user)
end

column "Referral", sortable: 'user.referrals' do |member|
  member.user.referrals
end

--error when sorting---

PG::Error: ERROR:  syntax error at or near "."
LINE 1: ... "users"."id" = "profiles"."user_id" ORDER BY user.referrals...
                                                         ^
: SELECT  "profiles"."id" AS t0_r0, "profiles"."actor_id" AS t0_r1,
4

1 回答 1

8

它给出了 SQL 错误,因为表“user”不存在(预期的表可能是“users”,复数)。

您将需要使用以下可排序选项:

# Note sortable is using the plural form of users.
column "Referral", sortable: 'users.referrals' do |member|
  member.user.referrals
end

在对连接表的列进行排序时,它采用"table_name.column".

于 2013-10-24T16:39:33.747 回答