2011-09-12 13 views
1

私は、ユーザーがソーシャル、プロフェッショナル、特別な3つの種類の複数のプロファイルを作成できるアプリケーションを用意しています。私は、これらのプロファイルタイプに関する情報をユーザーに格納する3つのモデルを用意しています。これらの異なるプロファイルのビュー間をナビゲートするために、プロファイル名のドロップダウンメニューを作成する必要があります。私はcollection_selectを使用して1つのデータベーステーブルからデータを取り込むことができますが、3つのテーブルすべてからどのようにデータを取り込むことができますか?複数のデータベーステーブルからドロップダウンを選択する

ドロップダウンナビゲーションバーにも入力できますか?プロファイル - >プロファイルを表示 - >すべてのプロファイルを動的に読み込みますか?

<ul id="nav" class="dropdown dropdown-horizontal"> 
    <li><%= link_to("Profiles", new_profile_path()) %> 
    <ul> 
      <li><%= link_to("View my profiles") %> 
       <ul> 
        <li> *some way to populate my list here* </li> 
       </ul> 
      </li> 
     </ul> 
      . 
      . 
      . 

何か助けていただければ幸いです。ありがとう!

答えて

0

3つの異なるプロファイルタイプに対して3つの別々のモデルを用意する代わりに、UserモデルとProfileモデルを1つずつ作成し、それらの間に関連付けを作成することをお勧めします。よりクリーンなデザインにつながります。

3つの異なるプロファイルモデルが必要な場合は、このようにドロップダウンを設定できます。

<select id="something"> 
    <%for profile in @social_profiles%> 
    <option value="<%=profile.id%>"><%=profile.name%></option> 
    <%end> 
    <%for profile in @professional_profiles%> 
    <option value="<%=profile.id%>><%=profile.name%></option> 
    <%end%> 
    . 
    . 
    . 
</select> 
+0

私は実際には、プロファイルと呼ばれる無モデル、このビーイングの理由を持っていない、3つのプロファイルは、フィールド/エントリの完全に異なるセットを持っています。だから、私はプロファイルテーブルの必要性を見ていないし、1対多のrealtionshipを使用して、異なるプロファイルを持つ3つのUserテーブルを直接関連付けました。私のユーザーモデルhashmany社会と専門家。上記のコードで 'profile'を 'user'に置き換えようとしましたが、うまくいきませんでした。私はレールが初めてだから、私の質問はあまりに素朴かもしれない。 – madhaviganti

+0

上記の 'profile'はループ変数で、' @ social_profiles'はインスタンス変数です。すべてのソーシャル・レコードのリストを取得するには、ソーシャル・モデルに照会する必要があります。 '@social_profiles = Social.all'です。 'professional_profiles'についても同様です –

+0

ありがとう!出来た :) – madhaviganti

関連する問題