簡體   English   中英

Rails 3:在模型或控制器中注冊日志?

[英]Rails 3: Register logs in model or controller?

我有一個Log模型,它記錄了對Foo模型執行的一些操作。 這意味着,每次創建或更新Foo實例時,都必須為其表創建一個新的Log實例,以注冊相應的操作。 這個創作屬於哪里? 是Foo的模型還是Foo的控制器?

我當時在想,在模型中我可以使用before_save方法,這會使我的控制器保持瘦身,但是我不確定將邏輯放在那里是否正確。 謝謝

日志可以在任何地方使用,這取決於您是否需要將它們放在正確的位置。

對於這種情況,您的日志記錄似乎與模型更改有關,但與HTTP請求無關,我認為更好的選擇是與模型相關的地方。

選項1: after_saveafter_update回調,而不是before_save (您只想在更改生效后將其記錄)

選項2:模型觀察者。

在這種情況下,我本人更喜歡Observer,因為Log不在此模型中,因此最好不要使用模型回調。 此外,觀察者還使您以后可以輕松添加更多內容。 不利的一面是觀察者很容易被遺忘,如果可以克服的話,這沒什么大不了的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM