Почему Destroy Action НЕ увольняют? - PullRequest
2 голосов
/ 03 декабря 2010

Я использую Rails 3 и пытаюсь понять, почему действие Destroy не запускается! Мой HTML запущен определяется следующим образом:

  <%= link_to "Delete", :action => "destroy", :id => article, :method => :delete, :confirm => "are u sure?" %>

А вот вот ArticleController:

def destroy

    @article = Article.find(params[:id]) 
    @article.destroy 

    respond_to do |format|
      format.html { redirect_to articles_url }
    end

  end

Когда я нажимаю на ссылку "Удалить", я перехожу к действию шоу. Я не уверен, почему это так?

Ответы [ 5 ]

5 голосов
/ 03 декабря 2010

Ваш link_to должен быть таким:

<%= link_to "Delete", @article, :method => :delete, :confirm => "are u sure?" %>

Это сгенерирует правильный URL для вашей статьи и перейдет к действию destroy.

1 голос
/ 11 февраля 2013

Убедитесь, что ваш application.js включил эту строку:

//= require jquery_ujs

Это решило мою проблему.

1 голос
/ 02 марта 2011

Вы удалили каталог javascripts, который находится в каталоге public вашего приложения rails?

Если да, создайте новый проект rails и скопируйте каталог javascripts в ваш текущий проект

0 голосов
0 голосов
/ 03 декабря 2010

Эта первая строка должна быть

@article = Article.find(params[:id])

Как только вы сделаете это изменение, вы не сможете перенаправить на @article, так как оно исчезнет; вам, вероятно, придется заменить эту последнюю строку на redirect_to articles_url. Весь новый метод будет:

def destroy
  @article = Article.find(params[:id]) 
  @article.destroy 

  respond_to do |format|
    format.html { redirect_to articles_url}
  end
end

Если у вас возникли проблемы с такими вещами, попробуйте создать модель scaffolded с rails generate scaffold Test, чтобы увидеть параметры по умолчанию.

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