我正在寻找解决方案,如何按两个关联级别深且有条件的属性进行排序。
我的订单模型必须与 Shop 模型或 Warehouse 模型相关联,这两种模型都与具有名称的国家/地区相关联。
我的目标是:
确定订单范围并按国家/地区名称排序。
结果必须是 ActiveRelation 对象
主要目标是将此范围用于 MetaSearch gem 以获取视图助手 sort_link
class Order < ActiveRecord::Base
belongs_to :shop
belongs_to :warehouse
validate :shop_id, :presence => true, :if => "warehouse_id.nil?"
validate :warehouse_id, :presence => true, :if => "shop_id.nil?"
#the case with shop_id.present? && warehouse_id.present? does not exist
scope :sort_by_country_name, ???
end
class Shop < ActiveRecord::Base
belongs_to :country
end
class Warehouse < ActiveRecord::Base
belongs_to :country
end
Country.coulumn_names => [:id, :name, ...]
实际上我不知道这是否可能,所以我很感激任何建议。
谢谢