我有一个名为Person
的模型。它有两个子模型Admin
和Owner
。
我创建了rails_admin
信息中心,其中包含多个带关联的模型。
我已将设计添加到Person
,这就是Admin
和Owner
可以登录我的信息中心的原因。
我已经添加了cancan的授权并定义了他们的能力。管理员可以管理所有内容,而所有者可以管理自己的数据。
现在问题就在于此。当所有者登录并尝试编辑自己时,他需要编写自己的密码,这很好。
但是,当管理员登录并尝试编辑所有者时,会要求写入所有者的密码。
如何在操作中排除某些文件,具体取决于谁正在更改它?
我虽然使用了以mby devise登录的current_person
,但是当我的rails_admin do /* my code */ end
放在我的模型代码中时如何获取它?
答案 0 :(得分:1)
这是隐藏密码字段的一种方法,因此只有用户编辑他/她的记录才能看到它。
edit do
include_all_fields
[:password, :password_confirmation].each do |f|
field f do
visible do
bindings[:object].id == bindings[:view].current_user.id
end
end
end
end
您可以创建自定义操作以重置仅限于管理员的密码。