0

我有这个对数据库的请求

@show = Question.where(:question_status => params[:id])

然后在@show 变量中我有这个:[#<Question id: 38, user_id: 1, question: "hi", question_status: 1, created_at: "2013-06-04 18:32:28", updated_at: "2013-06-04 18:32:28">, #<Question id: 40, user_id: 1, question: "urll", question_status: 1, created_at: "2013-06-04 18:34:57", updated_at: "2013-06-04 18:34:57">, #<Question id: 41, user_id: 1, question: "urll", question_status: 1, created_at: "2013-06-04 18:35:31", updated_at: "2013-06-04 18:35:31">]

例如,如何获取问题字段?我尝试@show.question但有错误no defined method question

4

5 回答 5

1
 @show = Question.find_by_question_status(params[:id]) 
and @show.question

如果您使用 where 语句,请使用:

@show.each do |show|
  show.question
end
于 2013-06-05T06:37:27.973 回答
0

使用@show.map(&:question). 这将为您提供数组中的所有问题。

@show.question 给你错误没有定义的方法问题,因为你试图在数组@show 上操作问题。

如果你这样做@show.first.question,它会给你第一个对象的问题。

如果你这样做@show.map(&:question),它会给你一系列问题。

获取所有信息。

@show.each do |show|
  puts show.question
  puts show.question_status
  puts show.user_id
end

您可以根据需要对其进行优化。

于 2013-06-05T06:55:49.967 回答
0

Try this code at your rails console

@show = Question.where(:question_status => params[:id])
@show.each_with_index do |ques, index|
   p "#{index+1} :: #{ques.question}"
end

With the help of index, you will get the sequence number of rows.

于 2013-06-05T06:43:43.913 回答
0

您想获取所有问题字段的数组吗?

questions = Question.where(:question_status => params[:id]).map(&:question)

然后你可以简单地去喜欢

questions.each{|question| puts question }
于 2013-06-05T06:50:17.487 回答
0

@show 是一个 ActiveRecord::Relation 对象(数组)。它不属于 Question 类。

@show = Question.where(:question_status => params([:id]).first

如果您只期望一个结果。否则,您必须为每个元素迭代数组

于 2013-06-05T06:38:48.780 回答