我有一個貨運模型和一個發票模型。該發票屬於裝運。Rails 3 ActiveAdmin。如何爲關聯記錄設置默認排序順序?
所以我增加了一個默認的排序順序是這樣裝運...
config.sort_order = 'file_number_desc'
但現在我想補充的發票相同的排序順序,(出貨量表是具有file_number列中的一個)但這似乎並沒有工作:
config.sort_order = 'shipments.file_number_desc'
我有一個貨運模型和一個發票模型。該發票屬於裝運。Rails 3 ActiveAdmin。如何爲關聯記錄設置默認排序順序?
所以我增加了一個默認的排序順序是這樣裝運...
config.sort_order = 'file_number_desc'
但現在我想補充的發票相同的排序順序,(出貨量表是具有file_number列中的一個)但這似乎並沒有工作:
config.sort_order = 'shipments.file_number_desc'
很好的解決方案@Siwei,我只想用的,而不是scope :joined
其缺省顯示上稱爲加入列表頂部的過濾器,如下:
controller do
def scoped_collection
GenericItem.includes(:vendor)
end
end
哪些修改ActiveAdmin控制器使用作爲默認的範圍,而不顯示給用戶。
根據這個帖子在其官方網站(我很奇怪,爲什麼維護者並沒有包括這個導入後的文件^ _ ^):https://github.com/gregbell/active_admin/pull/623
Step1。假設你有「generic_items」屬於「vendor」,並且vendor有一個attribute:name。
# app/models/generic_item.rb
class GenericItem < ActiveRecord::Base
belongs_to :vendor
end
# app/models/vendor.rb
class Vendor < ActiveRecord::Base
has_many :generic_items
# attr_accessor: name
end
Step2。現在您想在「admin/generic_items」頁面中輸入「vendor.name」。
# app/admin/generic_items.rb
ActiveAdmin.register GenericItem do
scope :joined, :default => true do |generic_items|
generic_items.includes [:vendor]
end
index do
# other column definition...
column :vendor_id, :sortable => "vendors.name" do |generic_item|
generic_item.vendor.name if generic_item.vendor
end
end
end
P.S.但是一旦你這樣做,過濾器就會關閉。目前。希望這個問題可以儘快修復。