为页面控制器创建删除路由

时间:2013-07-16 21:06:29

标签: ruby-on-rails controller routes link-to

我有一个创建页面模板的应用程序。用户帐户中有许多页面(用户模板)。单击删除按钮时出现以下错误:

浏览器

Routing Error

No route matches [DELETE] "/pages/1"

HTML

 <%= link_to 'Delete', page_path(page), :method => :delete, 
                                        :confirm => "Are you sure you want to delete?", 
                                        :remote => true, 
                                        class: 'btn btn-table-action btn-danger' %> 

控制器

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

  render :index
end

路由

    pages GET    /pages(.:format)                                 pages#index
          POST   /pages(.:format)                                 pages#create
edit_page GET    /pages/:id/edit(.:format)                        pages#edit
     page GET    /pages/:id(.:format)                             pages#show
          PUT    /pages/:id(.:format)                             pages#update

更新

的routes.rb

resources :pages, only: [:index, :show, :create, :edit, :update] do
  resource :optin_integration, only: [:edit, :update]
end 

我在哪里开始创建删除路由并使我的删除按钮在Rails中正常运行?

2 个答案:

答案 0 :(得分:1)

您的config/routes.rb文件中需要添加

resources :pages

答案 1 :(得分:1)

您需要在销毁时使页面资源可用。

resources :pages, only: [:index, :show, :create, :edit, :update, :destroy] do
  resource :optin_integration, only: [:edit, :update]
end 

这是一个不错的tutorial on Rails routing