Проблема с именованными маршрутами для вложенных ресурсов - PullRequest
0 голосов
/ 16 марта 2012

У меня есть вложенный ресурс rails 3, определенный следующим образом:

resources :candidates do
  collection do
    get :bookmarked
  end
  resources :bookmarks, :only => [:create, :destroy]
end

Действие, добавленное в закладки в коллекции кандидатов, создаст новую закладку для кандидата.Это работает нормально, как и ожидалось.

Проблема возникает, когда я пытаюсь удалить закладку.

У меня есть ссылка на моей странице показа кандидата следующим образом

<%= link_to "Remove bookmark", candidate_bookmarks_path(@candidate, @bookmark), :method => :delete %>

КогдаЯ щелкаю по этой ссылке и получаю следующую ошибку

No route matches "/candidates/1/bookmarks.8"

Я ожидал, что URL будет / кандидаты / 1 / закладки / 8, а не то, что напечатано в ошибке.Я также ожидал, что запрос будет направлен на метод уничтожения закладок контроллеров.Но ясно, что этого не происходит.

Может кто-нибудь сказать мне, что я делаю неправильно.Любая помощь приветствуется.

1 Ответ

2 голосов
/ 16 марта 2012

Путь действия уничтожения должен быть candidate_bookmark_path(@candidate, @bookmark) вместо candidate_bookmarks_path(@candidate, @bookmark).

Просто помните, что вы удаляете определенную закладку определенного кандидата, поэтому ресурсы должны быть единичными на вашем пути, и вам нужно передать конкретный объект для каждого ресурса.

...