Есть ли способ перенаправить на определенную страницу после удаления RESTful в Rails? - PullRequest
2 голосов
/ 07 декабря 2009

Допустим, у меня есть ресурс сообщения. Где-то в HTML у меня есть:

<%= link_to("Delete", message, :title => 'Delete', :confirm => 'Are you sure?', 
   :method => :delete )%> 

Сразу после удаления он перенаправляет меня на страницу со списком всех сообщений. Есть ли способ перенаправить на страницу, которую я указываю после удаления?

Ответы [ 3 ]

8 голосов
/ 07 декабря 2009

В контроллере:

def delete
  Item.find(params[:id]).destroy
  redirect_to :action => "index"
end

Чтобы перенаправить на последний URL, используйте:

redirect_to :back

http://api.rubyonrails.org/classes/ActionController/Base.html#M000662

Если вы научитесь хорошо читать API-документы, они будут чрезвычайно полезны, как только вы их освоите.

1 голос
/ 07 декабря 2009

Это на самом деле действие destroy, с которым вам следует иметь дело, если вы используете ресурсы Rails.

def destroy
  Item.find(params[:id]).destroy
  redirect_to other_specified_path
end

Если вы посмотрите на документацию API, вы увидите, что есть огромная разница между ActiveRecord::Base#delete и ActiveRecord::Base#destroy методами. Используйте delete, только если вы действительно понимаете, почему вы его используете.

0 голосов
/ 07 декабря 2009

Мне нужно только это

def delete
  Item.destroy
  redirect_to :back
end

Я использовал это, если хочу вернуться на текущую страницу

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