私は次のモデルを持つWebアプリケーションを持っています:シフト、年、チェックアウト、セールス、ビジター。Railsはベストプラクティスをフィルタリングします
シフトにhas_manyをチェックアウト、セールス、訪問者 A年にhas_manyは私のアプリでは年
belong_to シフトシフトbelong_to
チェックアウト、販売や訪問者をシフトし、私はものの、多くの異なる年の存在を持ちたいです一度にアクティブなのはONEだけです。たとえば、シフトを表示するときは、アクティブな年のシフトだけを表示することが必要です。それだけで十分です。
私が本当に苦労しているのは、有効な年のすべてのチェックアウトを取得するためのクエリを作成することです。これを行うための簡単な方法はありますか?アクティブな年は実際にはsession [:current_year_id]というセッション変数に設定されます。
@checkouts = Shift.where('year_id = ?',session[:current_year_id]).checkouts
しかし、それは私のために働いていないだろうと思った。それを稼働させるためには何を変更する必要がありますか?
チェックアウト、セールス、訪問者には、自分のyear_idはありません。彼らは彼らが属するシフトを通じてyear_idを持っています。
は解決済み:すべての助け以来、私は、すべての答えをupvoted
。私はfor_yearラムダ式を使用しました。私はすべての答えをupvotedしました。
最終的な答えを使用することでした:
Shift.for_year(session[:current_year_id]).collect{ |shift| shift.checkouts }
私はまだそのすべてからチェックアウト/販売/質問/訪問者のリストを取得することはできません、しかし、。そのステートメントの終わりに.checkoutsをタックしてすべてのチェックアウトのコレクションを取得する方法を知りたい – jyanks