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 回答