我正在尝试使用Ransack对列进行排序,但没有运气。
模型应用
class Application < ActiveRecord::Base
has_many :orders
end
模型订单
class Order < ActiveRecord::Base
belongs_to :executor_group, class_name: "Group"
end
模型组
class Group < ActiveRecord::Base
has_many :orders, foreign_key: "executor_group_id"
end
拥有这些模型,我试图像这样排序(来自应用程序模型/控制器):
sort_link(search, :orders_executor_user_last_name, translation)
控制器搜索操作:
@search = Application.includes(:group).search(search_params)
@applications = @search.result.paginate(pagination_params)
生成的SQL:
SELECT `applications`.* FROM `applications` LEFT OUTER JOIN `orders` ON `orders`.`application_id` = `applications`.`id` LEFT OUTER JOIN `groups` ON `groups`.`id` = `orders`.`executor_group_id` ORDER BY `groups`.`name` DESC LIMIT 20 OFFSET 0
所以,我想按执行程序组名对应用程序进行排序,但执行程序组属于命令,属于应用程序。 申请 - &gt;订单 - &gt;执行人组(集团)。
任何人都可以帮我吗?是否有可能按这种深层关系排序? 感谢。