【问题标题】:No route matches in rails when delete删除时rails中没有路线匹配
【发布时间】:2020-02-26 05:07:45
【问题描述】:

我是新手,在我的项目中我尝试删除一个用户。但是当我尝试时它给了我错误。

这是我的 index.html.erb 和路径视图>settings>srm>members>index.html.erb

 <%= form_tag({controller: "srm/members", action: "member_destroy"}, method: "delete", style: "display: inline-block;" ) do %>
    <input type="hidden" name="mid" value="<%= member["id"] %>">
    <button type="submit" class="edit-button" onclick="return confirm('Are you sure you want to delete this member?')"> 
      remove
    </button>
 <% end %>

这是我的 members_controller.rb 及其路径 app>controllers>settings>srm>members_controller.rb

  def member_destroy
   begin
   @url = api_version_root+'/users/'+params[:mid]
   response = RestClient.delete @url, api_token_hash

   flash[:info] = "User Deleted"
   redirect_to :back and return
   rescue RestClient::ExceptionWithResponse => err
   handle_rest_error http_code: err.http_code
 end
end

这就是我匹配 routes.rb 的方式

delete  '/settings/srm/members',     to:'members#member_destroy'

但它给出了以下错误。

没有路线匹配 {:action=>"member_destroy", :controller=>"settings/srm/members"}

我做错了吗?谁能帮我解决这个问题。

【问题讨论】:

    标签: ruby-on-rails ruby routes


    【解决方案1】:

    我们需要知道您如何定义MembersController 类和路由。我想这就是你所做的:

    class Settings::Srm::MembersController < ApplicationController
      def member_destroy
        # your code here
      end
    end
    

    然后,在你的路线中,你应该这样做:

    delete 'settings/srm/members', to:'settings/srm/members#member_destroy'
    
    #  OR
    
    namespace :settings do
      namespace :srm do
        delete 'members', to:'members#member_destroy'
      end
    end
    

    关键在路径中。

    【讨论】:

      猜你喜欢
      • 2022-07-02
      • 2012-10-11
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多