2017-08-13 9 views
0

私はRedditKit gemを使用していますが、特定の要素にアクセスするには、"client" objectを作成するためにreddit APIにリクエストを送信する必要があります。以下は私の現在のロジックです:どのようにレールサーバーのワイドオブジェクトを作成するには?

## 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

関連する問題