Ruby on rails Can';t更新Rails\u Admin中的用户,并使用所属对象更新模型:user

Ruby on rails Can';t更新Rails\u Admin中的用户,并使用所属对象更新模型:user,ruby-on-rails,belongs-to,rails-admin,Ruby On Rails,Belongs To,Rails Admin,我有两个场景,但都解决了相同的结果。这两种情况都涉及到试图通过Rails\u admin更新记录,这两种模型都具有“属于:用户”关联 场景1:我需要更新属于用户的视频记录。如果我尝试更改分配给此视频的用户,则用户id将始终更改为登录到Rails\u admin的管理员的用户id。无论我试图编辑哪个字段,用户id都将更改为当前登录的管理员 场景2:我需要更新属于用户的配置文件记录上的信用额度。再一次,无论我更改了哪个字段,即使用户不可见,用户id也会更改为当前登录的管理员的用户id 建议?听起来您

我有两个场景,但都解决了相同的结果。这两种情况都涉及到试图通过Rails\u admin更新记录,这两种模型都具有“属于:用户”关联

场景1:我需要更新属于用户的视频记录。如果我尝试更改分配给此视频的用户,则用户id将始终更改为登录到Rails\u admin的管理员的用户id。无论我试图编辑哪个字段,用户id都将更改为当前登录的管理员

场景2:我需要更新属于用户的配置文件记录上的信用额度。再一次,无论我更改了哪个字段,即使用户不可见,用户id也会更改为当前登录的管理员的用户id


建议?

听起来您的cancan配置有问题

检查以下行:

can:管理、视频、用户:用户


在这种情况下,RailsAdmin会将用户id的任何值覆盖到当前用户。

我也有同样的问题,为了避免能力重叠,我通过更改我的能力解决了这个问题。这意味着,如果用户是管理员,那么他将不会为其他用户设置权限

导致我出错的重叠示例:

user ||= User.new # guest user (not logged in)

can :manage, Video, user: user
if user.admin?
  can :manage, Video
end
这应改为:

user ||= User.new # guest user (not logged in)

if user.admin?
  can :manage, Video
else
  can [:crud], Video, :user_id => user.id
end  

这是我的,我不需要这些吗<代码>如果用户可以[:crud],视频,用户\u id:user.id如果user.has\u role?:管理员可以:管理,:所有结束这些是与视频相关的唯一项目。