0

私はでアプリを開発していて、Rails 3.2.11DeviseとCanCanを使用しています。

ability.rbユーザーが自分の会社に属するアイテムのみを管理できるようにファイルにアクセス許可を設定していますが、すべてが正常に機能しているようです。

  • 私のユーザーモデルbelongs toは会社モデルです。
  • この会社はhave manyクライアントモデルを作成できます。

スコープやgemなどを使用してクエリを自動化する方法があるので、それを介してフェッチするたびにClient.allユーザーの会社に属するクライアントのみが返されるのか、それともOrder.all彼の会社のクライアントの注文のみが表示されるのか疑問に思いました。 。これは可能ですか?そうでない場合、最善のアプローチは何でしょうか?事前にどうもありがとうございました。

4

2 に答える 2

1

誤解がないことを願っていますが、メソッドを書くとどうなりますか?

ユーザーのクライアント (ユーザーの会社に属している) を取得する場合

user.rb
def fetch_clients
  Clients.find_all_by_company(company) # your query here
end

コントローラーでは、次のことが簡単にできます。

@clients = @user.fetch_clients

同じことが注文にも当てはまります

SybariteManoj のおかげで、彼は次のように指摘しました (クエリがそれほど複雑ではないと仮定して):

@user.company.clients should return the same result
于 2013-01-29T09:55:51.617 に答える
0

CanCan には と呼ばれるものがありaccessible_byます。それはあなたが探しているものでしょうか?

詳細はこちら: https://github.com/ryanb/cancan/wiki/Fetching-Records

于 2013-01-29T11:00:09.927 に答える