我有一个Albums
脚手架,并且给定相册的当前Show Action
网址为:
http://localhost:3000/albums/Test
因此任何给定的相册属于用户,我正在努力设置嵌套链接(?),所以网址看起来像这样:
http://localhost:3000/user/albums/Test
前一段时间,当我为设计用户执行用户个人资料页面时,我将路线更改为:
# User Profile
get "users/show"
get 'user/:id' => 'users#show', as: :user
我试图模仿相册的这个动作,但没有。
整个想法是:
要保持albums_path相同,以便可以在localhost:3000/albums
内查看相册,只需打开相册(显示),然后网址将更改为localhost:3000 / user / testuser / albums / albumname。
有了这个,我试图避免相册名称中的重复,因为会有很多。
答案 0 :(得分:1)
get ':user_id/albums/:name', :to => 'albums#show', :as => :album
要在视图中访问它,您将传递以下内容:
Check out my band's new <%= link_to @album.name, album_path(user_id: X, name: @album.name) %>
并在网址中看起来像这样:
http://localhost:3000/2/albums/Music_for_Airports
#note that the formatting for the album name could be tricky to get right!
答案 1 :(得分:0)
还有另一种方法可以做到这一点。我想到的是这样的事情
resource :users do
resources :albums
end
但是仍然会将您的link_path参数更改为user_albums_path
。