2009-04-22 6 views
0

私は20以上のテーブルからなるアプリケーションを設計し、Ruby on Railsを利用しました。 ユーザーがログインするための認証システムを使用しています。彼がログインしたときに、多くのテーブルで見つけられる彼に関する情報、これらのテーブルの間にはすべての可能な関係が表示されます。 RoRでこれをどのように達成できますか?ビューの使用、複数の結合の使用を検討する必要がありますか?私は、「多くを持っている」のような古典的なアプローチを使用してテーブルのデザインに見て2つのテーブルよりも一つのモデルからの情報を得ることができませんでした「:を通じて」などRubyの複雑な関係 - 多くのテーブルにわたってデータを表示

、あなたの知識を共有していただけますか?

ありがとうございます!

+0

私は、ViewコンポーネントではなくRoRとのSQLテーブルビューの統合を指していました。誤解をおかけして申し訳ありません。 –

答えて

0

私はあなたのUserモデルが関連情報を含むすべてのテーブルとの関係を持っていると仮定します。あなたはアクションがUserControllerにある状態と対応するビューを持つことができる、と仮定すると

。このアクションでは、現在接続しているユーザーが誰であるかを知ることができ、関連するモデルから必要なすべてのデータを取得できます。これらのデータをビューに戻し、好きなようにレンダリングします。

0

私はあなたの質問があまりにも一般的だと思いますが、ここではいくつかの考えは...あなたは、従来のRailsアプリ

を作っていると仮定すると、「私は、ビューを使用することを検討すべきか?」されています

ビューは、従来のレールアプリに表示されるものです。したがって、ユーザーにデータを表示する場合は、ビューを使用してコントローラーで使用可能なデータを表示します。コントローラ内の各アクションは、モデルからデータを取得し、対応するビューを持ちます。

したがって、ユーザーに属している本を表示するには、本コントローラを持っているかもしれません。ユーザーがログインすると、 "Books"コントローラに@user_books = @ user.booksという "index"アクションがあります。この場合、@userは認証システムのユーザーオブジェクトになります。ユーザーには多くの書籍があり、書籍には多数のユーザーがいる可能性があります。あなたのviews/books/index.html.erbファイルには、次のようなものがあります:

<ul> 
<% @user_books.each do |b| %> 
    <li> <%= b.name %> </li> 
<% end %> 
</ul> 

書籍名のリストを印刷します。

はレールによって自動的に行われ参加ので、あなたは非常にまだそれを心配する必要はありません。しかし、あなたのアプリが本当に大きくなり、クエリが複雑な場合は、スケーラビリティを向上させるためにSQL文を書き直さなければならないかもしれませんが、それは明らかに良い問題です。

希望すると便利です。

関連する問題