0

我相信我从这里理解https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/PassKit_PG/Updating.html#//apple_ref/doc/uid/TP40012195-CH5-SW1应该如何更新通行证。我能够成功地将通行证添加到我的钱包中,并且在添加通行证后,钱包应用程序应该向此处指定的 URL 发送发布请求https://developer.apple.com/library/content/documentation/PassKit /Reference/PassKit_WebService/WebService.html - 我已经在rails中相应地实现了一条路线(我很确定!)。在我的路线文件中,我有:

post '/v1/devices/:device_id/registrations/:pass_type_id/:serial_number', to: 'test_wallet#register'

在一个名为 test_wallet_controller.rb 的控制器文件中,我有:

class TestWalletController < ApplicationController
  def register
    puts "woohoo we're in!"
    puts params[:device_id].inspect

    render :nothing => true, :status => 200
  end
end

对我来说奇怪的是,当我手动发送一个帖子请求时(比如从邮递员那里),我能够到达那条路线并记录“哇哦,我们进来了!” 但是当我将钱包通行证添加到我的手机并且苹果发送一个帖子请求时,我的服务器正在记录

ERROR -- : app error: No route matches [POST] "/v1/devices/b842730982707582104b371aea99a73f/registrations/pass.io.impacthealth.users/E5982H-I2" (ActionController::RoutingError)

并且从bundle exec rake routes/v1/devices/:device_id/registrations/:pass_type_id/:serial_number(.:format)指向test_wallet#register(以POST为前缀)

任何帮助将非常感谢 - 在此先感谢!如果有任何其他信息可以帮助调试,请告诉我:)

4

1 回答 1

0

啊,问题是 pass_type_id 中有一些句点导致铁路对路线的解释与我预期的不同(当我通过 Postman ping 路线时,我忽略了包括句点)。看起来可以像这里看到的那样处理它https://x3ro.de/rails-3-routing-parameters-with-dots/

于 2017-02-11T22:38:30.640 回答