Rails にかなり長い SQL クエリがあります。
Region.includes(:answers, answers: :choice)
.where('choices.id IS NULL OR choices.id = ?', 28)
.where('answers.id IS NULL OR answers.question_id = ?', 14)
.group("regions.region","choices.choice").count("answers")
これにより、カウントがゼロの場合でも、選択肢の名前と回答のカウントを含むすべての地域のハッシュが得られます。出力は次のとおりです。
{["East", nil]=>0, ["East Midlands", nil]=>0, ["London", nil]=>0, ["North East", nil]=>0, ["North West", nil]=>0, ["Northern Ireland", nil]=>0, ["Rest of World", "No"]=>3, ["Scotland", nil]=>0, ["South East", nil]=>0, ["South West", nil]=>0, ["Wales", nil]=>0, ["West Midlands", nil]=>0, ["Yorkshire and the Humber", nil]=>0}
現在、回答のある唯一の地域は、「いいえ」という選択肢名を表示する「その他の地域」です。
他のすべての項目は、選択名 (choices.choice) として「nil」を表示します。クエリに関連付けられた回答がない場合でも、nil ではなく Choice 名「いいえ」を出力するようにクエリを変更するにはどうすればよいですか?
ありがとう