私はIDの配列を収集することにより、スプラインチャートへのデータをレンダリングしようとしています:ではのMySQL、Highcharts:エラー
コントローラ
def student_feedback
difficulty_ids = current_user.school_user.homework_students.pluck(:difficulty)
@homeworks = HomeworkStudent.where("homework_id = (?)", difficulty_ids).first
end
:「オペランドが1列(複数可)を含める必要があります」私のチャート:
...
}
},
series: [{
name: 'Difficulty',
data: [<%= @homeworks.to_json %>]
}]
});
しかし、私はこのエラーを取得しておいてください。
Mysql2::Error: Operand should contain 1 column(s): SELECT `homework_students`.* FROM `homework_students` WHERE (homework_id = (4,2,1,2,3)) ORDER BY `homework_students`.`id` ASC LIMIT 1
収集されるデータは正しいです。これは単なる構文エラーですか?私はちょっと遊んだ。 "homework_id =?"から角括弧を削除する同じ結果を与える...必要に応じてより多くのコードを提供することができます。
おかげ
the12
@おかげで、この
def student_feedback
difficulty_ids = current_user.school_user.homework_students.pluck(:difficulty)
@homeworks = HomeworkStudent.where(["homework_id = ?", difficulty_ids]).first
end
を試みたが、これは `それはhomework_id = 4,2,1言う
Mysql2::Error: Operand should contain 1 column(s): SELECT `homework_students`.* FROM `homework_students` WHERE (homework_id = 4,2,1,2,3) ORDER BY `homework_students`.`id` ASC LIMIT 1`
をエラーを返します...これらの数値は実際には "難しさ"と呼ばれる列から来ています - おそらく何かが文のaboコントローラーにいますか?
'.where'の後の部分に角括弧を入れ、疑問符のまわりのかっこは必要ありません。 'HomeworkStudent.where([" homework_id =? "、難易度])。最初の' – the12
@ the12ありがとう!あなたはこのような意味ですか? @homeworks = HomeworkStudent.where(["homework_id =?"]、難易度)。最初に?これで私は["homework_id =?"]の定義されていないメソッド '% 'をエラーにします:Array" – Co2
いいえ、上記のソリューションをコピーして貼り付けてください。構文は次のように動作します: 'where([" column_name =? "、column_value])'。あなたが疑問符でそれを書いている方法では、あなたは配列に入れなければなりません。文字列のバージョンがほしい場合は、代わりに '.where(" homework_id =難易度 ")。first'と書くことができます。 – the12