我正在尝试在rails app上的链接上调用控制器操作。
控制器操作基本上会创建一个新的电话号码并生成一个Twilio引脚。
控制器
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
查看
<a href="<%= phone_numbers_resend_path %>">Resend Pin</a>
的routes.rb `
post 'phone_numbers/resend' => "phone_numbers#resend"
所以当我点击“重新发送Pin”时。我正在
No route matches [GET] "/phone_numbers/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
在路线中,我已将其设为帖子。我为什么要这个?我该如何解决这个问题?
答案 0 :(得分:1)
link_to "Send Pin", phone_numbers_resend_path, method: :post
答案 1 :(得分:0)
Anchor tag(<a>)
默认使用get
请求。但在路由中,您使用的是post
方法。因此,为了使其正常工作,您可以执行以下任何一项操作:
<%= link_to 'Resend Pin', phone_numbers_resend_path, method: :post %>
or
get 'phone_numbers/resend' => "phone_numbers#resend"