我已设置管理员命名空间,以便访问管理区域中的模型:/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 %>
似乎不起作用。任何人都知道如何让这个工作?
答案 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