Как я могу сортировать отношение ActiveRecord в порядке возрастания, исходя из значения атрибута, где этот атрибут существует в объединенной таблице, и является ли JSON?Сортировка отношения ActiveRecord по атрибуту JSON из объединенной таблицы
Во-первых, я запрашиваю членов и присоединяюсь к таблице 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 с 2-мя ключами, technical
и general
, именно: {'technical': 'accounting', 'general': 'planning'}
Я хотел бы сделать что-то подобное,
if project.status == 'complex'
members.sort_by {|x| x['data']['technical']}
else
members.sort_by {|x| x['data']['general']}
end
Так что я могу на основе их навыков в алфавитном порядке, основанных на разных случаях. Это возможно?
Извините, если я не объясню это четко.