假设我有一个instructions
表,该表通过surveys
连接表与survey_instructions
表关联。
我需要实现的是获取所有指令记录,但是要根据与给定调查的关联存在来排序。
因此,与给定调查相关的说明将首先显示,然后与该调查没有任何关系的所有其他说明。
class Instruction < ApplicationRecord
has_many :survey_instructions, dependent: :destroy
has_many :surveys, through: :survey_instructions
and
class Survey < ApplicationRecord
has_many :survey_instructions, dependent: :destroy
has_many :instructions, through: :survey_instructions
and
class SurveyInstruction < ApplicationRecord
belongs_to :survey
belongs_to :instruction
and
这可以通过以某种方式链接活动记录查询来实现吗?希望对此有任何想法
答案 0 :(得分:0)
是的,您可以通过ActiveRecord
查询来实现。试试这个:
survay_id = 10
@instructions = Instruction.includes(:survey_instructions).order("(CASE WHEN survey_instructions.survay_id = #{survay_id} THEN 1 ELSE 2 END) ASC NULLS LAST")
快乐编码:)