2011-09-12 124 views
1

我有一個應用程序,用戶可以在其上創建三種社交,專業和特殊興趣的多種配置文件。我有三種模型存儲有關用戶的這些配置文件類型的信息。我需要創建配置文件名稱的下拉選擇菜單,以在這些不同配置文件的視圖之間進行導航。我知道可以使用collection_select從一個數據庫表填充來完成,但我怎樣才能從所有三個表中填充?從多個數據庫表中填充下拉選擇

也可以填充下拉導航欄?配置文件 - >查看我的配置文件 - >動態填充所有配置文件?

<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

我會建議,除非絕對必要,否則可以使用一個User模型和一個Profile模型,然後在它們之間創建關聯,而不是三個不同的配置文件類型的三個單獨的模型。這將導致更清潔的設計。

如果您有三個不同的配置文件模型是絕對必要的,那麼您可以像這樣填充下拉列表。

<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

我實際上沒有模型叫做配置文件,原因是這三個配置文件有完全不同的字段/條目集。所以,我沒有看到需要配置文件表,並且使用一對多實用性將用戶表直接與具有不同配置文件的三個用戶表相關聯。我的用戶模型has_many社交和專業人士。我嘗試用'user'替換上面的代碼中的'profile',但它似乎沒有工作。我剛接觸rails,所以我的問題可能有點太天真了。 – madhaviganti

+0

上面的'profile'是一個循環變量,'@ social_profiles'是一個實例變量。您將不得不查詢社交模型以獲取所有社交記錄的列表。 '@social_profiles = Social.all'。同樣對於'professional_profiles' –

+0

謝謝!有效 :) – madhaviganti

相關問題