2011-07-13 231 views
1

在我的應用程序中,用戶有消息。在Rails 3中路由嵌套資源

resources :users do 
    resources :messages 
end 

用戶可以使用漂亮的網址訪問他們的個人資料,例如/ albert。

match ':username' => 'users#show', :as => 'username' 

但不是他們的消息!

user_message_path(@user, 1) 

returns/users/1/messages/1。我如何得到它返回/ albert/messages/1?

回答

1

在你的路由添加:

get ':username/messages/:id' => 'messages#show', :as => 'username_message' 

訪問,使用username_message_path

+0

感謝,但有沒有這樣做的一個比較通用的方法是什麼?我們不得不爲每個嵌套資源添加該行,這將成爲立方體 – alste

+0

以及每個嵌套資源的每個動作... – alste

+0

我鼓勵您查看資源方法的定義:http://api.rubyonrails .org/classes/ActionDispatch/Routing/Mapper/Resources.html#method-i-resource(點擊顯示源)。如果它提供的模式不符合您的喜好,您可以爲您的應用程序創建自定義方法。 –