2016-10-02 2 views
0

第三者のラッパーライブラリがレールアプリケーション上で解決される場合のベストプラクティスはありますか?; RoR;サービスオブジェクトで特定のニーズに対応するサードパーティのライブラリラッパー

私はapp/serviceで開発されていますので、バックグラウンドでアクションをカプセル化するのは簡単です。

参考:http://brewhouse.io/blog/2014/04/30/gourmet-service-objects.html

今の問題は、私は特定のニーズのためにサードパーティのライブラリのラッパーを置くべき

のですか?

例えば、

  • Mailchimp:電子メールサブスクリプションのラッパー

  • エビ:PDF領収書のラッパー

  • スラック通知 ... 。

私はそれぞれの宝石を作成したり、モデルに入れることができました。 PDFレシートラッパーのようにコードが十分に大きければ、私は宝石を作るために行くことができましたが、小さければモデル/宝石を置くのが良いとは思いません。

提案がありますか?

答えて

1

これは本当にあなた次第です。

config/initializersの新しいファイルにカスタムコードを入れることができます。これらは自動的に必要になります。

コードをlib/に入れて、自動ロードパスに追加することもよくあります(これについては他に質問があります)。

サービスごとにモデルを作成することもできます。モデル用のデータベーステーブルは必ずしも必要ではありません(これを設定するには他にも質問があります)。

私はこの情報(カスタムコードを置く場所)はレールに本当に不可欠だと思うし、初心者の多くは混乱していると思う。

関連する問題