簡體   English   中英

ActiveAdmin:按關聯排序(belongs_to)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM