2011-07-22 8 views
0

内のフィールドにアクセスしますか?は簡単に私が持っているモデル

スコープを使用していますか?あるいは、私はuser.defaultpermission.permissionsのようなことをすることができますか?

おかげ

答えて

1

あなたが正しく保存されたデータを持っている場合、これは動作します:

user.default_permission.permissions 

これは複雑な思考と思われる - それは、あなたのデザインが欠陥がある兆候かもしれません。

+0

誰かがhas_and_belongs_to_manyを使用することを提案しましたが、どうすればいいですか?この例では私はそれを行うことができます。しかし、もし私がUser、Permission、Applicationモデルを持っていたら? has_and_belongs_to_manyを使用して3列の表を作成できますか? – glarkou

+0

default_permissionは何をしていますか? –

+0

これは、ユーザーが作成されたときに格納される、あらかじめ定義された属性の一部です。しかし、将来、ユーザーがアプリケーションをインストールしようとすると、それらのアプリケーションに対して他のいくつかのアクセス許可を受け入れます。 – glarkou

0

あなたの質問は矛盾しています has_one default_permissionが定義されていますが、ユーザのすべてのdefault_permissionsを取得する方法を尋ねていますか? あなたの質問に間違いがあったかどうかは、小さな設計上の欠陥があることを明確に示しています ユーザのすべての権限を取得するには、権限テーブルまたは の適切なuser_idでhas_many権限を定義する必要がありますすべての既定のアクセス許可が必要な場合は、has_oneの既定のアクセス許可をhas_manyの既定のアクセス許可に変更する必要があります。

個人的に、アクセス許可ではなく役割を使用し、アクセス許可を役割クラスまたは個人クラスのビジネスロジックメソッドとして定義しますあなたの必要条件に最も適したものどれでも

そうすれば、can_do_somethingを定義できますか?ユーザクラスのメソッド したがって、1人または複数のロールを持つことができる人またはユーザ、およびユーザクラスcan_do_something?メソッドは役割を見て、真か偽を返すかを決定します

関連する問題