Я пытаюсь выяснить, как указать маршрут, который я пытаюсь использовать, но я продолжаю получать ошибки маршрутизации. Может кто-нибудь, пожалуйста, укажите, где я ошибаюсь и, возможно, объясню, что может быть лучшим способом сделать это?Rails routing при вложенности ресурсов
Я работаю с этими (вложенными) ресурсами:
resources :users do
resources :playlists
end
Модель:
class User < ActiveRecord::Base
has_many :playlists
end
class Playlist < ActiveRecord::Base
belongs_to :user
validates :user_id, presence: true
end
Теперь я пытаюсь связать плейлисты пользователя внутри пользователя/show.html. Еврорадио файл:
<p>
<%= link_to "Playlists", user_playlists_path(@playlist)%></p>
</p>
Что приводит меня к странице Списки воспроизведения (/ пользователей/1/плейлистов) успешно, но когда я пытаюсь добавить пе ж воспроизведения для этого пользователя, я получаю следующее сообщение об ошибке:
Showing /app/views/playlists/_form.html.erb where line #1 raised:
undefined method `playlists_path' for #<#<Class:0x0000000335c688>:0x00000003d0b238>
Это строка # 1:
<%= form_for(@playlist) do |f| %>
Это то, что я получаю за rake routes
, если это помогает на всех:
Prefix Verb URI Pattern Controller#Action
user_playlists GET /users/:user_id/playlists(.:format) playlists#index
POST /users/:user_id/playlists(.:format) playlists#create
new_user_playlist GET /users/:user_id/playlists/new(.:format) playlists#new
edit_user_playlist GET /users/:user_id/playlists/:id/edit(.:format) playlists#edit
user_playlist GET /users/:user_id/playlists/:id(.:format) playlists#show
PATCH /users/:user_id/playlists/:id(.:format) playlists#update
PUT /users/:user_id/playlists/:id(.:format) playlists#update
DELETE /users/:user_id/playlists/:id(.:format) playlists#destroy
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
root GET / default_pages#home
signup GET /signup(.:format) users#new
signin GET /signin(.:format) users#signin
Имеет смысл, спасибо. Я попытался заменить @playlist на [@user, @playlist], и я получаю ту же ошибку. Что еще это может быть? – user2804881
сменил его с @playlist на "[: user, @playlist]". Но теперь, когда я отправляю новый плейлист, он жалуется на большее количество маршрутов плейлистов. Есть много мест с «@playlist» ... нет ли способа генерировать правильные пути, чтобы мне не пришлось исправлять все эти ошибочные пути? – user2804881
У вас есть @user в новом плейлисте.controller.rb? обновите код или указате свои коды на gist.github.com, чем меньше вы покажете нам, тем меньше мы сможем помочь :) – argentum47