使用rails_admin我想检查current_user是否是最初创建对象的用户,然后才能更新特定字段(另一个用户必须检查'已批准'字段)。如果用户相同,则应该中止保存。
我可以使用像object.versions.first.whodunnit之类的东西来获取原始用户,但我很难获得current_user。有问题的对象与user_model没有任何关联(仅用于rails_admin - >没有'常规'用户)。
在模型中我无法访问current_user,我不知道如何访问rails_admin使用的控制器。
答案 0 :(得分:0)
找到解决方案。 ' PaperTrail.whodunnit'可以在模型中使用获取current_user。所以我添加了一个自定义验证使用
self.versions.first.whodunnit.to_i == PaperTrail.whodunnit.id
检查对象的原始创建者是否与即将批准此对象的当前版本的人相同。
如果有人知道更好的解决方案,请告诉我。