Ruby on rails 如何每月从RubyonRails应用程序调用一次api

Ruby on rails 如何每月从RubyonRails应用程序调用一次api,ruby-on-rails,ruby,json,cron,haml,Ruby On Rails,Ruby,Json,Cron,Haml,我是RubyonRails的新手。。。。我需要有关如何完成以下任务的建议: 任务:调用api并获取应该为header/footer.haml文件处理的JSON数据。 有两种不同语言的api调用 关注点:api应该每月只调用一次 目前我正在这样做: 应用程序\u controller.rb before_filter :get_header require 'rubygems' require 'json' require 'httparty' def get_header header_

我是RubyonRails的新手。。。。我需要有关如何完成以下任务的建议:

任务:调用api并获取应该为header/footer.haml文件处理的JSON数据。 有两种不同语言的api调用

关注点:api应该每月只调用一次

目前我正在这样做: 应用程序\u controller.rb

before_filter :get_header

require 'rubygems'
require 'json'
require 'httparty'

def get_header
  header_api_response = HTTParty.get('api')
  @res = JSON.parse(header_api_response.body)
end
然后我处理header.haml文件中的@res以获取数据。但是我需要这个api调用函数一个月只调用一次。我应该在rails之外创建一个cron作业来调用这个api吗??
最佳解决方案是什么?

创建cron将是适合您的情况的最佳解决方案。您可以为此创建一个cron,对于使用cron,有一个非常好且易于实现的gem,名为


这是一个关于如何实现它的简单教程。

为它创建一个rake任务,然后在任何时候使用
gem来安排一个cronjob来执行你也可以使用的rake任务()。谢谢你的建议。。这里我没有什么顾虑:1)当api调用无法给出正确的响应时2)当用户可以选择英语/阿拉伯语等语言时,我可以将api响应引用的逻辑放在哪里。。。。非常感谢您的帮助。如果您正在制作动态头文件,您应该将头文件存储在数据库中。请首先参阅gem的gem文档,以清楚地了解其工作原理。语言首选项也必须存储在DB中,因此代表用户首选项,您可以通过从DB读取首选语言来调用特定API。