0

こんなに単純なことで問題が発生する理由はわかりませんが、この条件ステートメントは機能していません。

@battalion = Battalion.find(params[:id])
@soldier = @battalion.soldiers(:conditions => ["seniorleader = ?", "No"]) 

これは兵士の配列を示していますが、設定した条件を反映していません。

本当に単純な間違いをしていると確信していますが、それが何であるかを理解できないようです。

どんな助けでも大歓迎です。

4

1 に答える 1

3

2行目の構文に基づいて、兵士のプロパティとして条件を渡しているのであって、実際にリストを整理しているわけではありません。あなたは試すことができます:

@soldier = @battalion.soldiers.find(:all, :conditions => ["seniorleader = ?", "No"])

findメソッドは、兵士を分類するのに役立ちます。また、最初の行で積極的な読み込みを行うことをお勧めします。

@battalion = Battalion.find(params[:id], :include => "soldiers")

したがって、@ battalionオブジェクトにはすでにすべての兵士の情報が含まれており、2行目に個別のSQLクエリは必要ありません。お役に立てれば。

于 2009-10-18T18:45:36.557 に答える