在Rails中进行RESTful删除后,有没有办法重定向到特定页面?

时间:2009-12-07 03:53:49

标签: ruby-on-rails rest

假设我有一个消息资源。在html的某处我有:

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

在我删除它之后,它会将我重定向到列出所有消息的页面。有没有办法重定向到删除后指定的页面?

3 个答案:

答案 0 :(得分:8)

在控制器中:

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

要重定向到最后一个网址,请使用:

redirect_to :back

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

如果你能学好如何阅读api文档,那么一旦掌握了它们,它们就非常有用。

答案 1 :(得分:1)

如果您正在使用Rails的资源,那么实际上您应该处理destroy操作。

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

如果您查看API文档,您会发现ActiveRecord::Base#deleteActiveRecord::Base#destroy方法之间存在巨大差异。如果你真的明白为什么要使用删除,请使用删除。

答案 2 :(得分:0)

我只需要这个

def delete
  Item.destroy
  redirect_to :back
end

如果我想回到当前页面,我使用了这个