从命名空间中删除

时间:2012-01-18 06:23:42

标签: ruby-on-rails ruby-on-rails-3.1 link-to unobtrusive-javascript

我已设置管理员命名空间,以便访问管理区域中的模型:/admin/pages

但是我有以下问题 我无法使删除功能在Admin::PageController或我的任何模型下工作。

有谁知道如何做到这一点。 我有以下内容:

Admin :: PageController我有以下

def destroy
   @page = Page.find(params[:id])
   @page.destroy

   respond_to do |format|
     format.html { redirect_to admin_pages_url }
     format.json { head :ok }
   end
end

然后在我的页面索引文件中我想要一个删除记录的链接我有以下内容:(/ admin / pages)

<%=link_to admin_page_path(page), :class => 'ico del' do %>
  <%='Delete'%>
<% end %>

似乎不起作用。任何人都知道如何让这个工作?

2 个答案:

答案 0 :(得分:1)

你错过了:link_to call中的方法选项

 link_to 'Delete', admin_page_path, :confirm => 'Are you sure?', :method => :delete 

<%=link_to admin_page_path(page), :class => 'ico del',:method => :delete do %>
  <%='Delete'%>
<% end %>

答案 1 :(得分:0)

link_to帮助器默认为GET请求,除非您指定其他属性来告诉它您希望如何处理它。

在这种情况下,您需要设置一些额外的参数:

<%=link_to "Delete", admin_page_path(page), :class => "ico del", :remote => true, :method => :delete %>

后台实际发生的事情是Rails UJS(不显眼的javascript适配器)捕获click事件并通过AJAX发送请求。因此,您应该看到它使用POST点击您的服务器(但它也会传入_method => delete)以删除该对象。

我还假设您正确设置了路线。类似的东西:

namespace :admin do
  resources :pages
end
相关问题