2016-04-11 3 views
1

保存を実行する最適な方法はどこですか。私は管理者のユーザーが何をしたのかをすべてログに記録するロガーメソッドを作成しました。モデルで保存するのが理想的ですか?

def log(params_here={}) 
    initialized_model = Model.new(with_proper_parameters_here) 
    initialized_model.save 
end 

私はmodelまたはlibでこれを置く場合、私は考えていました。だから問題は、理想的にはこのメソッドをmodelに置くことですか?または、私はそれをlibに置くだけですか?そして、私がmodel/libで行うときの原因/アドバタイズ/デメリットは何ですか?

UPDATE:

私はまた、次を発見したが、それは私の質問を満たしていませんでした。

  1. Rails 3: Best practices for saving models
  2. https://www.toptal.com/ruby-on-rails/top-10-mistakes-that-rails-programmers-make
+1

私の場合、私は常にlibでそれをやっています。 –

答えて

0

これは、モデルのように見えるので、本当にmodelsディレクトリに場所がないことはありません。それはモデルを構築する責任を負う外部のユーティリティーならば、のようなよく使われる用語のためにグローバルな名前空間でそれを定義することは避けたいが、libはそれには良い場所になるだろう。私はまた、なぜこの方法がlogと呼ばれているのか、混乱しています。なぜなら、どのようなロギングもしていないように見えるからです。

個人的に私はlibに入れてしまいました。あるいは、おそらくapp/servicesで宣言している他のサービスオブジェクトと一緒に行く可能性のあるビルダーオブジェクトでラップする可能性があります。どのように、どこで、なぜそれが使用されているかについて、より多くの文脈がなければ言うことが難しい。

なぜ単純化しないのですか?

def log(params_here={}) 
    Model.create(with_proper_parameters_here) 
end 
+0

ええ、私が決定するのを助けてくれてありがとう。私はあなたの答えを受け入れるでしょう。ありがとう! – HashRocket

関連する問題