我正在尝试从我的Rails应用程序发送推送通知.我尝试了宝石APNS,休斯顿,当我在我的开发机器上时,它们的工作非常棒.
这些宝石需要/path/to/PEM/file(Apple的证书)才能发送通知.但是,我似乎无法弄清楚如何在生产服务器上提供此文件.我正在使用Heroku.
我尝试将其上传到Amazon-S3(非公开)并从那里使用它.但是,这不起作用,因为gems寻找本地文件(而不是URI).如何在Heroku上保存本地文件?
gem APNS要求路径为字符串.然后它检查文件是否存在.
raise "The path to your pem file does not exist!" unless File.exist?(self.pem)
Run Code Online (Sandbox Code Playgroud)
宝石休斯顿要求PEM作为File对象.但是,我不能这样做File.open("url_to_my_pem_file")
我正在编写一个仅具有REST API的Rails应用程序(没有Web界面等).我需要检查是否使用正确的参数进行请求,如果没有则返回不同的错误代码.例如,我的所有API端点都需要user_access_token和client_id.一些其他端点需要存在其他不同的参数.
在所有控制器中,我都有执行此检查的代码,但代码正在重复,并且有许多if条件可以提取出来放在其他地方.所以我想before_filter在我的中添加一个ApplicationController检查.我定义了一个包含所有端点到required_params映射的哈希,并且该过滤器在控件传递给相关的实际控制器之前运行.
但是对于某些端点来说,它有点复杂,因为如果存在其他一些参数则需要一些参数,并且在某些情况下需要两个参数中的一个.所以现在我想知道是否有更好的方法来做到这一点.
我做得对吗?这样做有更好/标准化的方法吗?或者一些宝石这样做?