0

私はAlbums足場を持っておりShow Action、特定のアルバムの現在の URL は次のとおりです。

http://localhost:3000/albums/Test

したがって特定のアルバムはユーザーに属します。ネストされたリンク (?) を設定する方法に苦労しているため、URL は次のようになります。

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

しばらく前に、 Devise ユーザーのユーザー プロファイル ページを作成したときに、ルートを次のように変更しました。

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

アルバムでこのアクションを真似ようとしましたが、何もしませんでした。

全体のアイデアは次のとおりです。

内からアルバムを表示できるように albums_path を同じままにしておくと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 に答える