Ruby on rails 根据联接表中的JSON属性对ActiveRecord关系排序
如何根据属性的值(该属性存在于联接表中且为JSON)按升序对ActiveRecord关系进行排序 首先,我查询成员并加入Ruby on rails 根据联接表中的JSON属性对ActiveRecord关系排序,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,如何根据属性的值(该属性存在于联接表中且为JSON)按升序对ActiveRecord关系进行排序 首先,我查询成员并加入skills表 members = Member .select(' member.id, member.skills_id, member.name, member.position, skills.data as data') .join('left join skills on skills.id = member.skills_id') 在每个
skills
表
members = Member
.select('
member.id,
member.skills_id,
member.name,
member.position,
skills.data as data')
.join('left join skills on skills.id = member.skills_id')
在每个成员记录中,skills.data
是一个JSON,有两个键,technical
和general
,
ie:{'technical':'accounting','general':'planning'}
我想做一些事情,比如
if project.status == 'complex'
members.sort_by {|x| x['data']['technical']}
else
members.sort_by {|x| x['data']['general']}
end
因此,我可以根据成员的技能按字母顺序排列,根据不同的情况排列。这可能吗
如果我没有解释清楚,我深表歉意。纯SQL解决方案:如果您想要基于顺序的n个结果 排序依据(skills.data->“technical”)::文本 按解决方案进行排序: 成员们,按顺序排序!{| member | member.data['technical'].to|s}