Ruby on rails 没有与[GET]匹配的路由/控制器/方法“;
我正在尝试调用rails应用程序链接上的控制器操作 控制器操作基本上创建一个新的电话号码并生成Twilio pin 控制器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
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。所以,你应该在我更新的时候重写它。