2009-06-03 108 views
3

我有單表繼承適用於我的應用程序。我有兩個用戶子類型(運動員和公司),繼承超級用戶。單表繼承路由?

比方說,我列出所有用戶,並希望鏈接到此列表中的每個用戶的個人資料。如果類型是運動員,並且公司控制者是類型是公司,我想鏈接到運動員控制器。有沒有標準的Rails方式呢?也許有些路由技巧?

回答

2

你甚至可以做到這一點更簡單,Rails的認可它具有處理,所以讓我們說,你有實例變量@user至極可以是一個運動員或者一個公司哪種類型的用戶,您可以這麼做

= link_to "Profile", @user 

BAM!鐵軌神奇!

+0

我是否必須以特殊方式設置我的路線才能做到這一點?我收到一個錯誤:未定義的方法'user_path'。我可以撥打其他鏈接嗎? – Sam 2009-06-03 15:21:26

+0

你必須爲每個資源添加map.resources。我有曾經的公司和人,這兩者都是聯繫人,所以我在我的routes.rb:map.resources人 map.resources公司 map.resources聯繫人 這應該做的伎倆! – 2009-06-03 17:10:30

+0

雖然我有這個問題,但我不想使用map.resource設置的正常show /:id方案。相反,我想要像'home /:permalink'這樣的東西。我正在使用'map.connect'運動員/:action /:permalink',:controller =>'athletes',:action =>'home'' – Sam 2009-06-04 00:43:41

-3
<% User.find(:all).each do |user| %> 
    <%= link_to "user", eval("#{user.type.underscore}_path(user)") %> 
<% end %> 

這將根據用戶類型(存儲在類型字段中)生成路徑。不要忘記將用戶類型添加到您的路由配置中。

我希望這會有所幫助。

問候

+0

不要認爲從視圖訪問模型是一個好主意...... – 2011-05-18 10:03:37

+0

使用這樣的eval通常不是一個好主意。 – 2013-04-03 13:02:56