我有單表繼承適用於我的應用程序。我有兩個用戶子類型(運動員和公司),繼承超級用戶。單表繼承路由?
比方說,我列出所有用戶,並希望鏈接到此列表中的每個用戶的個人資料。如果類型是運動員,並且公司控制者是類型是公司,我想鏈接到運動員控制器。有沒有標準的Rails方式呢?也許有些路由技巧?
我有單表繼承適用於我的應用程序。我有兩個用戶子類型(運動員和公司),繼承超級用戶。單表繼承路由?
比方說,我列出所有用戶,並希望鏈接到此列表中的每個用戶的個人資料。如果類型是運動員,並且公司控制者是類型是公司,我想鏈接到運動員控制器。有沒有標準的Rails方式呢?也許有些路由技巧?
你甚至可以做到這一點更簡單,Rails的認可它具有處理,所以讓我們說,你有實例變量@user至極可以是一個運動員或者一個公司哪種類型的用戶,您可以這麼做
= link_to "Profile", @user
BAM!鐵軌神奇!
<% User.find(:all).each do |user| %>
<%= link_to "user", eval("#{user.type.underscore}_path(user)") %>
<% end %>
這將根據用戶類型(存儲在類型字段中)生成路徑。不要忘記將用戶類型添加到您的路由配置中。
我希望這會有所幫助。
問候
不要認爲從視圖訪問模型是一個好主意...... – 2011-05-18 10:03:37
使用這樣的eval通常不是一個好主意。 – 2013-04-03 13:02:56
我是否必須以特殊方式設置我的路線才能做到這一點?我收到一個錯誤:未定義的方法'user_path'。我可以撥打其他鏈接嗎? – Sam 2009-06-03 15:21:26
你必須爲每個資源添加map.resources。我有曾經的公司和人,這兩者都是聯繫人,所以我在我的routes.rb:map.resources人 map.resources公司 map.resources聯繫人 這應該做的伎倆! – 2009-06-03 17:10:30
雖然我有這個問題,但我不想使用map.resource設置的正常show /:id方案。相反,我想要像'home /:permalink'這樣的東西。我正在使用'map.connect'運動員/:action /:permalink',:controller =>'athletes',:action =>'home'' – Sam 2009-06-04 00:43:41