2

私のコントローラー全体に以下のようなコードがあります。これは、特定のアカウントのモデルをフィルタリングするためのものです(マルチテナンシーの場合)。これを乾かす簡単な方法はありますか?これcurrent_account_idは、現在のユーザーに依存するコントローラーヘルパーメソッドです。

Job.with_account(current_account_id).active.......
Contact.with_account(current_account_id).active.......

アプリケーションコントローラにヘルパーメソッドを追加することが最善の方法かどうかはわかりません。

編集:明確にするために、私は以下のようないくつかのコードを使用することができます:

def job_with_current_account
  Job.with_account(current_account_id)
end

次に、コントローラー内のあらゆる場所でこのメソッドを使用します。

job_with_current_account.active.....

これを行うための別のよりエレガントな方法があるかどうか疑問に思いました。

4

1 に答える 1

2

両方向の関連付けを定義し、current_accountヘルパーがいると仮定すると、代わりにこれを使用できます。

current_account.jobs.active.....
current_account.contacts.active.....

もう少し簡潔で、with_accountすべてのモデルでスコープを定義する必要はありません。

于 2012-07-09T16:10:51.627 に答える