我正在使用RedditKit gem并且为了访问某些元素,我需要向reddit api发送请求以创建"client" object。以下是我目前的逻辑:
## application_controller
before_action :redditkit_login
private
def redditkit_login
@client = RedditKit::Client.new ENV["reddit_username"], ENV["reddit_password"]
end
正如你在我的逻辑中所看到的,在每次请求之前,我随后会创建一个新的客户端对象,然后在任何地方使用它。
我的问题是,如何制作一个客户端对象,可用于从任何地方提供所有请求?
这背后的动机是速度。对于服务器的每个请求,我正在发出reddit的新请求,然后响应原始请求。我想让客户端对象随时可用。
答案 0 :(得分:0)
你有很多选择。一个简单的方法是创建一个config/initializers/reddit_client.rb
文件并放入其中:
RedditClient = RedditKit::Client.new ENV.fetch("reddit_username"), ENV("reddit_password")
(注意我切换到ENV.fetch
,因为如果找不到密钥会出错,这可能会有帮助。)
您还可以将文件重命名为app/models/reddit_client.rb
。虽然它不是真正的模型,但该文件夹也是自动加载的,因此它也可以正常工作。