Rails 3 уничтожает метод response_with JS, используя вложенные ресурсы - PullRequest
1 голос
/ 19 января 2012

У меня эта досадная проблема с Rails 3 (ruby 1.9.2) и вложенными ресурсами.В моих маршрутах:

resources :lists do
  resources :items, only: [:destroy, :update, :create]
end

Мой ItemsController имеет respond_to :json в начале и #destroy выглядит так:

def destroy
  @item = Item.find(params[:id])
  @item.destroy
  respond_with @list, @item
end

Ссылка для уничтожения предмета:

<%= link_to 'x', list_item_path(@list, item), method: :delete, remote: true %>

Что означает правильный HTML, например:

<a href="/lists/1/items/52" data-method="delete" data-remote="true" rel="nofollow">x</a>

Когда я нажимаю на ссылку, мой элемент удаляется правильно, но метод всегда возвращает {}.Я пытался возиться с этим, но не могу получить ничего, отличного от этого пустого объекта JSON!

Каждый другой метод (#create и #update) работает и возвращает объекты JSON, как и ожидалось.

1 Ответ

2 голосов
/ 19 января 2012

Я не совсем уверен, что еще можно ожидать от этого.Если item удален, ответ JSON будет пустым, поскольку он не может вернуть уничтоженный объект.

С create и update, объект item все еще существует, поэтому он вернетэто как хэш JSON.

...