0

我正在使用RedditKit gem,为了访问某些元素,我需要向 reddit api 发送请求以创建“客户端”对象。以下是我目前的逻辑:

## application_controller
before_action :redditkit_login

private

def redditkit_login
  @client = RedditKit::Client.new ENV["reddit_username"], ENV["reddit_password"]
end

正如您在我的逻辑中看到的那样,在每次请求之前,我随后都会创建一个新的客户端对象,然后在任何地方使用它。

我的问题是,我如何只制作一个可用于服务来自任何地方的所有请求的客户端对象?

我背后的动机是速度。对于对服务器的每个请求,我都会向 reddit 发出新请求,然后响应原始请求。我想让客户端对象随时可用。

4

1 回答 1

0

你有很多选择。一个简单的方法是创建一个config/initializers/reddit_client.rb文件并放入其中:

  RedditClient = RedditKit::Client.new ENV.fetch("reddit_username"), ENV("reddit_password")

(注意我切换到,ENV.fetch因为如果找不到密钥会出错,这可能会有所帮助)。

您也可以将文件重命名为app/models/reddit_client.rb. 虽然它不是真正的模型,但该文件夹也会自动加载,因此它应该也可以工作。

于 2017-08-13T19:08:14.260 回答