[英]ActiveAdmin: Sort by association (belongs_to)
我有一個索引管理員視圖,我正在顯示一個關聯的模型City
。 我希望能夠按城市名稱排序,但是當我單擊列標題進行排序時,我收到以下錯誤:
ActiveRecord::StatementInvalid in Admin/deals#index
SQLite3::SQLException: no such column: cities.name: SELECT "deals".* FROM "deals" ORDER BY cities.name desc LIMIT 30 OFFSET 0
索引視圖
ActiveAdmin.register Deal do
index do
column :id
column :city
end
...
end
模型
class Deal < ActiveRecord::Base
belongs_to :city
end
我怎么能按城市排序?
使用Rails 3或4:
index do
column :city, :sortable=>:"cities.name"
...
end
然后,在同一個文件中,您需要這樣,以便Deal
查詢包含City
屬性:
controller do
def scoped_collection
Deal.includes(:city)
end
...
end
請查看https://github.com/gregbell/active_admin/pull/623#issuecomment-2419393以及以下注釋。 您必須告訴activeadmin如何進行排序 - 可能類似於column :city, :sortable => 'cities.name'
並在定義交易索引頁面之前定義joined
范圍。 就像是
scope :joined, :default => true do |deals|
deals.includes [:city]
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.