0

我有一个Albums脚手架,给定专辑的当前Show ActionURL 是:

http://localhost:3000/albums/Test

因此,任何给定的专辑都属于用户,我正在努力设置嵌套链接(?),所以 url 看起来像这样:

http://localhost:3000/user/albums/Test

不久前,当我为设计用户创建用户配置文件页面时,我将路线更改为:

# User Profile
get "users/show"
get 'user/:id' => 'users#show', as: :user

我试图为专辑模仿这个动作,但没有。

整个想法是:

要使专辑路径保持不变,以便可以从内部查看专辑localhost:3000/albums,只需打开专辑(显示),然后 url 将更改为 localhost:3000/user/testuser/albums/albumname。

有了这个,我试图避免专辑名称中的重复,因为会有很多。

4

2 回答 2

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) %>

在 url 中它看起来像这样:

http://localhost:3000/2/albums/Music_for_Airports 
#note that the formatting for the album name could be tricky to get right!  
于 2013-09-19T19:35:42.083 回答
0

还有另一种方法可以做到这一点。我想到的事情是这样的

resource :users do
  resources :albums
end

但这仍然会将您的 link_path 参数更改为user_albums_path.

于 2013-09-19T20:38:22.240 回答