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

すべての質問フィールドの配列を取得したいですか?

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

次に、次のように簡単に行くことができます

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

Railsコンソールでこのコードを試してください

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

インデックスの助けを借りて、行のシーケンス番号を取得します。

于 2013-06-05T06:43:43.913 に答える
0

を使用し@show.map(&:question)ます。これにより、すべての質問が配列で表示されます。

@show.question は、配列 @show で question を操作しようとしているため、エラー no defined method question を返します。

そうすると@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

@show は ActiveRecord::Relation オブジェクト (配列) です。Question クラスには属しません。

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

1 つの結果のみを期待している場合。それ以外の場合は、要素ごとに配列を反復する必要があります

于 2013-06-05T06:38:48.780 に答える