我有这个数据库的请求
@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
。
答案 0 :(得分:1)
@show = Question.find_by_question_status(params[:id])
and @show.question
如果您是我们的声明,请使用:
@show.each do |show|
show.question
end
答案 1 :(得分:0)
@show是一个ActiveRecord :: Relation对象(Array)。它不属于Question类。
@show = Question.where(:question_status => params([:id]).first
如果您只期望一个结果。否则,您必须为每个元素迭代数组
答案 2 :(得分:0)
在rails控制台上试用此代码
@show = Question.where(:question_status => params[:id])
@show.each_with_index do |ques, index|
p "#{index+1} :: #{ques.question}"
end
在索引的帮助下,您将获得行的序列号。
答案 3 :(得分:0)
您想要获取所有问题字段的数组吗?
questions = Question.where(:question_status => params[:id]).map(&:question)
然后你就可以像
一样questions.each{|question| puts question }
答案 4 :(得分: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
您可以根据自己的要求进行优化。