Ruby on rails 没有与[GET]匹配的路由/控制器/方法“;

Ruby on rails 没有与[GET]匹配的路由/控制器/方法“;,ruby-on-rails,Ruby On Rails,我正在尝试调用rails应用程序链接上的控制器操作 控制器操作基本上创建一个新的电话号码并生成Twilio pin 控制器 def resend @phone_number = PhoneNumber.find_or_create_by(phone_number: params[:phone_number][:phone_number]) @phone_number.generate_pin @phone_number.send_pin respo

我正在尝试调用rails应用程序链接上的控制器操作

控制器操作基本上创建一个新的电话号码并生成Twilio pin

控制器

def resend
      @phone_number = PhoneNumber.find_or_create_by(phone_number: params[:phone_number][:phone_number])
      @phone_number.generate_pin
      @phone_number.send_pin
      respond_to do |format|
        format.js # render app/views/phone_numbers/create.js.erb
      end
end
查看

routes.rb`

发布“电话号码/重发”=>“电话号码#重发”

所以当我点击“重新发送Pin”时。我越来越

没有路由匹配[GET]“/phone\u number/resend”

耙路由输出

phone_numbers POST /phone_numbers(.:format)        phone_numbers#create
    new_phone_number GET  /phone_numbers/new(.:format)    phone_numbers#new
phone_numbers_verify POST /phone_numbers/verify(.:format) phone_numbers#verify
phone_numbers_resend POST /phone_numbers/resend(.:format) phone_numbers#resend
在routes中,我将其设置为post。为什么我会得到这个?如何修复此问题?

Anchor tag()
默认情况下使用
get
请求。但在路由中,您使用的是
post
方法。因此,要使其正常工作,您可以执行以下任一操作:

link_to "Send Pin", phone_numbers_resend_path, method: :post
<%= link_to 'Resend Pin', phone_numbers_resend_path, method: :post %>

                        or

get 'phone_numbers/resend' => "phone_numbers#resend"

或
获取“电话号码/重发”=>“电话号码#重发”

我用
rake routes
输出更新了问题。我知道了,正常点击一个正常的a标签会向href值发出get请求(例如,example.com/phone\u numbers/resend),但您已经为post定义了路径,而不是get。所以,你应该在我更新的时候重写它。