私は3つの関連するテーブルを持っています。ユーザー、オーダー、およびビューデータ
各ユーザーは多くの注文を持っていますが、同時に、各ユーザーは他のユーザーに属する特定の他の注文を表示できます。したがって、Viewables には と の属性がuser_id
ありorder_id
ます。
注文には
:has_many :Users, :through => :viewables
オーダーのビューから検索することはできますか? だから何か
@viewable_orders = Orders.find(:all, :conditions => ["Viewable.user_id=?",1])
user_id=1 で表示可能な注文のリストを取得します。(これは機能しません。それ以外の場合は質問しません。:( ) 現在のユーザー (ログインしているユーザー) が他の人の注文のリストを表示できるサイドバーのようなものを実行できるという考えです。たとえば、
表示できる注文を持っている他の 3 人のユーザーは、最終的に次のように表示されます。
- ジャック (2)
- 基本オーダー (registry_id: 1)
- 新規注文 (registry_id: 29)
- エイミー (4)
- ショートオーダー (registry_id: 12)
- ジル (5)
- ハードウェア注文 (14)
- ピンクオーダー (17)
- ソフトウェア注文 (76)
(括弧内の数字は、それぞれの user_id または registry_id です)
したがって、現在のユーザーが見つけることができるすべての注文のリストを見つけるには (現在のユーザーの user_id が 1 であると仮定)、次のようにします。
@viewable_orders = Viewable.find(:all, :conditions => ["user_id=?", 1])
これにより、上記の 6 つのレジストリのコレクションが得られます。これを行う最も簡単な方法は、
+ Jill's Hardware Order
+ Jill's Pink Order
+ Amy's Short Order
+ etc
しかし、それは長いリストでは見苦しくなります。
ありがとう!