У меня есть следующий метод уничтожения в контроллере Tracks:
def destroy
if params[:product_id].present?
@product = Product.find(params[:product_id])
@track = @product.tracks.find(params[:id])
@track.destroy
redirect_to product_path(@product)
elsif params[:release_id].present?
@release = Release.find(params[:release_id])
@track = @release.tracks.find(params[:id])
@track.destroy
redirect_to release_path(@release)
end
end
Я могу уничтожить трек релиза используя:
<%= link_to 'Destroy', release_track_path(@release,track), :confirm => 'Are you sure?', :method => :delete %>
Но я получаю ошибку маршрутизации "Нет маршрутов, совпадающих [POST]" / products / 74 / track / 43 "", когда я пытаюсь уничтожить трек продукта:
<%= link_to 'Destroy', product_track_path(@product,track), :confirm => 'Are you sure?', :method => :destroy %>
Я посмотрел на мой файл Routes и думаю, что это, вероятно, проблема там, но попробовав несколько вещей, я озадачен! Кто-нибудь может помочь? Это сводит меня с ума. Я использую то же самое, если в моем методе создания используется els, и он отлично работает как для Track Release, так и для Product Track.
Вот мой route.rb (подозреваю, что это большой беспорядок!)
Dashboard::Application.routes.draw do
get "home/index"
root :to => "home#index"
get "tracks/new"
get "tracks/create"
get "tracks/update"
get "tracks/edit"
get "tracks/destroy"
get "tracks/show"
get "tracks/index"
get "help/index"
resources :helps
resources :roles
resources :labels
devise_for :users
resources :users
resources :releases do
resources :artists
resources :tracks
resources :products do
resources :tracks
resources :itunes_data
end
end
resources :itunes_data
resources :tracks do
collection { post :sort }
end
resources :products do
resources :tracks
collection do
get 'schedulecsv'
get 'schedule'
get 'new_releases'
get 'active_lines'
get 'deleted_lines'
get 'gemsetup'
get 'amazonsetup'
get 'search'
end
end
resources :artists
end