主动管理员要对关联的子列进行排序很麻烦。我有一个配置文件,其中包含一个相关的“用户”。
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,
最佳答案
由于表“ user”不存在(预期表可能是“ users”,复数),因此出现SQL错误。
您将要使用以下可排序选项:
# Note sortable is using the plural form of users.
column "Referral", sortable: 'users.referrals' do |member|
member.user.referrals
end
对联接表的列进行排序时,其格式为
"table_name.column"
。