我知道教条说不要在模型中访问 current_user,但我并不完全同意。例如,当通过 rails 回调发生操作时,我想编写一组日志记录函数。或者当一个对象可以有多个人写入它时,简单地写谁写了一个更改(不像消息只有一个所有者)。在许多方面,我将 current_user 更多地视为应用程序的配置 - 换句话说,让这个应用程序响应这个用户。我宁愿通过模型 DSL 进行日志记录,而不是在看起来真的不合适的操作中。我错过了什么?
这个想法似乎相当不雅访问模型中的 current_user
这样做:http ://rails-bestpractices.com/posts/47-fetch-current-user-in-models
谢谢
编辑#1 所以我的问题不是是否有可以进行审计/日志记录的宝石。我目前使用的是 paper_trail (虽然不再使用它,因为我可以在大约 10 行 ruby 代码中完成相同的功能);它更多的是关于是否永远不应该在模型中访问 current_user - 我本质上想减少我的控制器代码并将逻辑下推到应该在的模型中。部分原因可能是由于 ActiveRecord 的历史,它本质上是一个围绕数据库表的包装器,RoR 多年来为其添加了很多功能。