【问题标题】:How to use current_user with before_save in rails_admin如何在 rails_admin 中使用 current_user 和 before_save
【发布时间】:2014-10-16 17:01:13
【问题描述】:
使用 rails_admin 我想检查 current_user 是否是最初创建对象的同一用户,然后他才能更新特定字段(不同的用户必须检查“已批准”字段)。如果用户相同,则应中止保存。
我可以使用 object.versions.first.whodunnit 之类的方法获取原始用户,但我很难获取 current_user。有问题的对象与 user_model 没有关联(仅用于 rails_admin -> 没有“常规”用户)。
在模型中我无法访问 current_user,也不知道如何访问 rails_admin 使用的控制器。
【问题讨论】:
标签:
ruby-on-rails
rails-admin
【解决方案1】:
找到了解决办法。 'PaperTrail.whodunnit' 可用于模型中获取 current_user。所以我添加了一个自定义验证和使用
self.versions.first.whodunnit.to_i == PaperTrail.whodunnit.id
检查对象的原始创建者是否与即将批准该对象当前版本的人相同。
如果有人知道更好的解决方案,请告诉我。