我的模型有一個奇怪的排序問題。ActiveRecord關係的排序問題
考慮以下幾點:
- 我有一個名爲CV模型,其中有許多職業和技能,並鏈接到一個國家。
- 我也有一個名爲空缺的模型,它有一個職業和許多技能,也與一個國家有關。
在我的控制器,我的下面幾行代碼:
@occupations = Occupation.find params[:occupation_ids].split(' ')
@skills = Skill.find params[:skill_ids].split(' ')
@cv = Cv.find params[:cv_id]
@language = Language.resolve({:code => :en, :name => :en})
@vacancies = Vacancy.joins(:vacancy_skills).where('vacancy_skills.skill_id' => params[:skill_ids]).all.uniq.sort{ |x,y| (x.skills | @skills).length <=> (y.skills | @skills).length }
的想法是,所有空位與否有關它們的相關性,這是由聯合的選定之間的長度來計算排序技能(@skils
)和有關空缺的技能。
當我運行代碼,我收到的職位空缺,按國家排序,按相關性排序,但我不想讓他們按國家排序的,而不是我希望他們全部混合,但按相關性排序。
電流輸出是:
- 空缺1,100%的相關性,英國
- 空缺2,90%的相關性,英國
- 空缺3,10%的相關性,英國
- 空位4,90%的相關性,法國
- 空位5,70%的相關性,FANCE
所需的輸出應該是這樣的:
- 空缺1,100%的相關性,英國
- 空缺2,90%的相關性,英國
- 空位4,90%的相關性,法國
- 空缺5,70%的相關性,法國
- 空置3,10%的相關性,英國
我應該怎麼改/做的就是它 像那樣?