dim*_*rvp 12 ruby-on-rails-3 activeadmin
我有这些对象:
class District < ActiveRecord::Base
belongs_to :city
end
class City < ActiveRecord::Base
has_many :districts
end
Run Code Online (Sandbox Code Playgroud)
我想做的(迄今为止无法做到)是:City在District索引中有一列,该列应该是可排序的City.name.
在没有崩溃ActiveAdmin的情况下我能做的最近的事情是:
index do
column City.human_name(:count => :other), :city, :sortable => :city_id
end
Run Code Online (Sandbox Code Playgroud)
这当然不够好; 我不想对外键的整数值进行排序.
尝试过的东西:sortable => 'city.name',给出了一个错误.甚至试图像你在"纯粹的"Rails上那样做 - :joins => :cities, :sortable => 'city.name'- 没有运气.尝试了一堆其他愚蠢的东西,生气了,决定谦卑地寻求帮助.
谁能指出我正确的方向?谢谢你的时间.
Evg*_*ova 22
那也应该做的工作:
index do
column City.model_name.human, :city, :sortable => 'cities.name'
end
controller do
def scoped_collection
end_of_association_chain.includes(:city)
end
end
Run Code Online (Sandbox Code Playgroud)
小智 10
试试这个......这会有所帮助....
index do
column :city, :sortable => :"cities.name" do |district|
district.city.human_name(:count => :other) if district.city.present?
end
end
controller do
def scoped_collection
District.includes(:city)
end
end
Run Code Online (Sandbox Code Playgroud)
小智 5
非常简单且可读的解决方案:
index do
column :city, sortable: "cities.name"
end
controller do
def scoped_collection
# join cities
super.includes :city
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7753 次 |
| 最近记录: |