0

ruby on rails で列の値を取得する必要があります。 find_by_sql を使用して mysql-cmd で値を取得します。値は正しく返されますが、ビュー ページではランダムな値が返されます。

passed_question = params[:passed_question]
@answer.questions_id = passed_question
next_question = params[:next_question]
@question = Question.find_by_id(passed_question)
@module = Question.find_by_sql ["SELECT student_additional_field_id FROM questions WHERE id=#{passed_question}"]

それは127450632の値ですが、mysql cmdでは

mysql> select student_additional_field_id from questions
-> where id=3;
+-----------------------------+
| student_additional_field_id |
+-----------------------------+
|                           1 |
+-----------------------------+

前もって感謝します

4

2 に答える 2

3

find_by_sql配列を返すため

result の値にどのようにアクセスしようとしていますか?

このように試しましたか

@module = Question.find_by_sql ["SELECT student_additional_field_id FROM questions WHERE id=#{passed_question}"]

student_additional_field_id = @module[0].student_additional_field_id
于 2013-10-22T04:49:26.873 に答える
1

この行:

@module = Question.find_by_sql ["SELECT student_additional_field_id FROM questions WHERE id=#{passed_question}"]

おそらく次のようになります。

@module = Question.find_by_sql ["SELECT student_additional_field_id FROM questions WHERE ?", passed_question]

アップデート:

ドキュメントへのリンクと詳細な説明を投稿しておけばよかったと思います。find_by_sql で変数を使用する場合、レースを ? でマークします。最後に変数を順番にリストします。

于 2013-10-22T04:24:21.177 に答える