如何在rails_admin中使用current_user和before_save

时间:2014-10-16 17:01:13

标签: ruby-on-rails rails-admin

使用rails_admin我想检查current_user是否是最初创建对象的用户,然后才能更新特定字段(另一个用户必须检查'已批准'字段)。如果用户相同,则应该中止保存。

我可以使用像object.versions.first.whodunnit之类的东西来获取原始用户,但我很难获得current_user。有问题的对象与user_model没有任何关联(仅用于rails_admin - >没有'常规'用户)。

在模型中我无法访问current_user,我不知道如何访问rails_admin使用的控制器。

1 个答案:

答案 0 :(得分:0)

找到解决方案。 ' PaperTrail.whodunnit'可以在模型中使用获取current_user。所以我添加了一个自定义验证使用

self.versions.first.whodunnit.to_i == PaperTrail.whodunnit.id

检查对象的原始创建者是否与即将批准此对象的当前版本的人相同。

如果有人知道更好的解决方案,请告诉我。