Управление остальными ресурсами в Rails 3 - PullRequest
0 голосов
/ 20 октября 2010

Я пытаюсь преобразовать мое приложение Rails 2 в Rails 3, но я не могу удалить ресурсы, используя мой старый код Rails 2. Если быть точным, я пытаюсь удалить ресурс, используя эту ссылку:

<%= link_to image_tag("misc/delete.png"), @book, :confirm => 'Are you sure?', :method => :delete %>

И все же это не работает вообще! Он ведет себя так, как будто параметры :confirm и :method вообще не установлены, то есть перенаправляет меня на URL-адрес объекта @book, даже не показывая окно предупреждения.

Сгенерированный HTML-код в Rails 3:

<a href="/books/13" data-method="delete" rel="nofollow"><img alt="Delete" src="/images/misc/delete.png?1205252772"></a>

Сгенерированный HTML в Rails 2 был:

<a href="/books/11" class="small" onclick="if (confirm('Are you sure?')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); f.appendChild(m);var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', 'authenticity_token'); s.setAttribute('value', 'uPeQI9FZxJT+DQlWvb02X5FEihG/hJgBk+vUhDwYT8o='); f.appendChild(s);f.submit(); };return false;"><img alt="Delete" src="/images/misc/delete.png?1279402305"></a> 

Это очевидная разница, но я понятия не имею, как мне решить эту проблему.

Мой контроллер выглядит так:

class BooksController < ApplicationController
  before_filter :require_admin, :only => ['new', 'create', 'edit', 'update', 'destroy']

  # ....

  def destroy
    puts "-------------- DESTROYING BOOK --------------"
    @book = Book.find(params[:id])
    @book.destroy

    flash[:notice] = "Successfully destroyed book."
    session[:restore] = request.referer
    redirect_to back(edit_author_url(@book.author))
  end
end

И строка «Уничтожающая книга» не отображается на консоли, поэтому я думаю, что наверняка что-то не так.

Что-то изменилось в Rails 3, о чем я должен узнать?

Спасибо, ребята!

1 Ответ

1 голос
/ 20 октября 2010

Вам необходимо добавить библиотеку JavaScript рельсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...