我有货运模型和发票模型。发票属于发货。
所以我为这样的货物添加了默认的排序顺序......
config.sort_order = 'file_number_desc'
但现在我想为发票添加相同的排序顺序,(出货表是具有file_number列的出货表),但这似乎不起作用:
config.sort_order = 'shipments.file_number_desc'
答案 0 :(得分:2)
很好的解决方案@Siwei,我会使用,而不是scope :joined
,默认情况下会在名为Joined的列表顶部显示一个过滤器,而不是controller do
def scoped_collection
GenericItem.includes(:vendor)
end
end
:
{{1}}
修改ActiveAdmin控制器以将该范围用作默认值,而不向用户显示。
答案 1 :(得分:1)
根据这个帖子在其官方网站上(我想知道为什么维护者没有将这个导入帖子包含在文件中^ _ ^):https://github.com/gregbell/active_admin/pull/623
步骤1。假设您有“generic_items”属于“vendor”,并且vendor有一个属性: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
第二步。现在您想在“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。但是一旦你这样做,过滤器将会关闭。目前。希望这个问题可以尽快修复。