私はRailsの新機能をよく使い、コードを整理する方法について質問があります。私は脂肪の多いモデルと皮肉なコントローラについて読んで、それは(理論的には)意味があります。データをダウンロードして保存するコードはどこに置くのですか?
私が今やっているのは、定期的に(CronとRailsランナーを介して)インターネットからデータをダウンロードし、その一部をデータベースに保存することです。私が理解していないのは、データを取得するAPIを使用しているコードを記述する場所です。ダウンロードしたデータを分割して2つの異なるモデル/データベーステーブルに格納されている別のケースについてどう
API data
'--> Model --> Database
:私はモデルにそれを置くと、それはこのように見てみましょうか?選択するのはどのバージョンですか?
バージョン1:
API data
'--> Model --> Database
'--> Model --> Database
はバージョン2:
API data
'--> Controller
|--> Model --> Database
'--> Model --> Database
あなたの助けをありがとう! :)あなたがrake task_name
で実行
と
schedule.rb
ファイルを作成したときにして。 'app/service_objects/download_data_from_api.rb' –
^それは悪い考えではありません。私はしばしばそれをレーキタスクとして書いたので、 'lib/tasks'まで続きます。次にcronはrakeコマンドを実行します。 – agmcleod
私は、ActiveRecordから継承していないRubyクラスをモデルフォルダに置くことはまったく問題ではないと主張します。 Rubyメソッドを 'rails runner" Model.method "'で直接実行することができます。レイクタスクは必要ありません。 – spickermann