アクティブなオブジェクトのみのクエリを実行する際に問題が発生しました。モデルメソッドでクエリしますか?
def complete?
self.winner ? true : false
end
ゲームが勝者を持っている場合、#complete?
はtrueを返します方法:私の代わりに、モデルのゲームに、私は次のメソッドを持って、データベースに活性カラムを持っていません。このメソッドでfalseを返すすべてのGamesを照会したいのですが、ActiveRecordでこれを行う方法はありますか?今、私のコントローラで私は単に@games = Game.all
を呼んでいるし、その後のような私の部分のレンダリングゲームで:
<% unless game.complete? %>
yada yada
<% end %>
これは一種のハックようだ、と私は表示させたい場合は、別の部分を書くために私が必要となる「完成します" ゲーム。とにかく、モデルメソッドからtrue/falseを返すオブジェクトだけをコントローラに割り当てる方法があるかどうか疑問に思っていましたか?
のように行うことができます。なぜスコープを使用しないのですか? – snowangel
@snowangelこの正確な例では、はい、そうです。私がこれを書いた時点では、私はまだRailsにはかなり新しく、私はまだスコープを本当に理解しているとは思わない。しかし、より大きな意味では、問題のメソッドがより複雑でSQLで記述できない場合でも、この方法はまだ有効です。 – MrDanA
理にかなって、十分に公平です! – snowangel