条件が false の場合、空の配列または nil を返しますか? 例えば:
@result=Result.where(:test_id=>test_id, :user_id => current_user.id).first
そのようなtest_idとuser_idで結果がない場合。
わかりません。最初のオプションだと思いましたが、これはnilを返します。
条件が false の場合、空の配列または nil を返しますか? 例えば:
@result=Result.where(:test_id=>test_id, :user_id => current_user.id).first
そのようなtest_idとuser_idで結果がない場合。
わかりません。最初のオプションだと思いましたが、これはnilを返します。
変数は 2 つの部分で構成され、最初の部分はActiveRecord::Relation
(本質的に配列である)を返します。
@result_array = Result.where(:test_id=>test_id, :user_id => current_user.id)
> @result_array.class
=> ActiveRecord::Relation
[]
結果がない場合は空です ( として表示されます)。
2 番目は最初の項目を返します。または(空の配列の場合) nil
:
> (1..10).first
=> 1
> [].first
=> nil
@first_or_nil = @result = @result_array.first
これらのタイプのコマンドを Rails コンソールに入力して、結果を確認することをお勧めします。
あなたの問題のために、このコードのように使うことができます。
@result=Result.where(:test_id=>test_id).(:user_id => current_user.id).first
メソッド .first で #bang を使用するには、次のようにします!
。
@result=Result.where(:test_id=>test_id, :user_id => current_user.id).first!
ruby がテーブル「results」で出会う最初の要素を返す必要があります。
それは役立つはずです。