Rails Удалить запись из nested-ресурса - PullRequest
0 голосов
/ 21 марта 2012

У меня есть модель Charge, которая является подмножеством модели Quotes.

resources :quotes do
  resources :charges
end

Я хочу удалить charge, находясь на странице редактирования цитаты.

цитаты / _form.html.haml

- @quote.charges.each do |charge|
  %tr
    %td
      = link_to 'x', charge, :confirm => 'Are you sure you want to delete this charge?', :method => :delete

Когда я загружаю страницу, я получаю неопределенный метод `charge_path 'для # <#: 0x0000012f8a2ea8>. Я также попробовал:

= link_to 'x', quote_charge_path(charge), :confirm => 'Are you sure you want to delete this charge?', :method => :delete

И это, кажется, работает, но похоже, что идентификатор цитаты и идентификатор заряда расположены в неправильном порядке. Например, генерируемый URL-адрес - <a href="/quotes/11/charges/13" ... На самом деле он должен быть /quotes/13/charges/11. Кто-нибудь знает, как это сделать правильно? Спасибо.

Обновление

Интересно, что в итоге получилось = link_to '×', [@quote, charge], :confirm => 'Are you sure you want to delete this charge?', :method => :delete, :class => "close". Когда я указывал путь quote_charge_path([@quote, charge]), он создавал неправильный URL. Не уверен почему ...

1 Ответ

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

Для вложенных помощников маршрута вам нужно передать как родительский, так и дочерний объект. Попробуйте

quote_charge_path([@quote, charge])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...