2017-08-13 26 views
0

我使用的是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

您有很多選擇。一個簡單的一個是創建一個config/initializers/reddit_client.rb文件,並擺在那裏:

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

(注意我切換到ENV.fetch,因爲如果關鍵是沒有找到它就會報錯,這可能是有益的)。

您也可以將該文件重命名爲app/models/reddit_client.rb。雖然它不是一個真正的模型,但該文件夾也是自動加載的,所以它也應該可以工作。

+0

謝謝!這工作!網站速度提高10倍:) – Dillawes0me