Sli*_*ick 13 ruby-on-rails associations activeadmin
我正在开发一个ActiveAdmin应用程序,我希望按照"类型"对一列业务进行排序.不幸的是我的代码无效.我应该用什么代码来完成这个?这是我的代码......
app/models/business.rb
class Business < ActiveRecord::Base
belongs_to :type
attr_accessible :description, :email, :facebook, :foursquare, :google, :manager,
:mobile, :name, :phone, :type_id, :url, :yelp
end
Run Code Online (Sandbox Code Playgroud)
app/models/type.rb
class Type < ActiveRecord::Base
attr_accessible :category
has_many :businesses
def to_s
category
end
end
Run Code Online (Sandbox Code Playgroud)
app/admin/businesses.rb
ActiveAdmin.register Business, { :sort_order => :name_asc } do
scope :joined, :default => true do |businesses|
businesses.includes [:type]
end
index do
column :name
column :type, :sortable => 'businesses.type'
column :manager
column :email
default_actions
end
end
Run Code Online (Sandbox Code Playgroud)
谢谢!
Evg*_*ova 20
根据这个讨论:https://github.com/gregbell/active_admin/pull/623,如果你不想使用范围,你可以改用scoped收集方法:
ActiveAdmin.register Business, { :sort_order => :name_asc } do
scope :all, :default => true
index do
column :name
column :type, :sortable => 'types.category'
column :manager
column :email
default_actions
end
controller do
def scoped_collection
end_of_association_chain.includes(:type)
end
end
end
Run Code Online (Sandbox Code Playgroud)