Dre*_*rew 6 ruby ruby-on-rails rails-activerecord
我试图通过Rails中相关模型中的字段进行排序.如果相关模型被另一个参数过滤,我研究过的所有解决方案都没有解决?
物品模型
class Item < ActiveRecord::Base
has_many :priorities
Run Code Online (Sandbox Code Playgroud)
相关型号:
class Priority < ActiveRecord::Base
belongs_to :item
validates :item_id, presence: true
validates :company_id, presence: true
validates :position, presence: true
end
Run Code Online (Sandbox Code Playgroud)
我正在使用where子句检索Items:
@items = Item.where('company_id = ? and approved = ?', @company.id, true).all
Run Code Online (Sandbox Code Playgroud)
我需要通过相关表格中的"位置"列进行排序.问题在于,在优先级模型中,可以列出多个公司的项目.所以这些职位取决于他们拥有哪家公司.当我显示项目时,它是针对一家公司,按公司内部的位置排序.完成此任务的正确方法是什么?任何帮助表示赞赏.
PS - 我知道acts_as_list然而发现它不太适合我的设置,所以我手动处理保存排序,同时仍然使用jquery ui sortable.
您可以使用该includes方法包含构建关联,然后按顺序排序.你只要确保你消除歧义您订购的领域,有一些事情你应该读了这里的预先加载.所以它可能是这样的:
@items = Item.includes(:priorities).where('company_id = ? and approved = ?', @company.id, true).order("priorities.position ASC")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3298 次 |
| 最近记录: |