我有2个场景,但都解决了相同的结果。这两种情况都涉及尝试通过Rails_admin更新记录,两个模型都具有“belongs_to:user”关联。
场景1:我需要更新属于用户的视频记录。如果我尝试更改分配了此视频的用户,则user_id将始终更改为登录到Rails_Admin的管理员的user_id。无论我尝试编辑哪个字段,user_id都将更改为当前登录的管理员。
场景2:我需要更新属于用户的个人资料记录的信用额度。再一次,无论我更改哪个字段,即使用户不可见,user_id也会更改为当前登录的Admin的user_id。
建议?
答案 0 :(得分:0)
听起来您的康康舞配置存在问题。
检查以下行:
可以:管理,视频,用户:用户
在这种情况下,RailsAdmin会将user_id的任何值覆盖为current_user。
答案 1 :(得分:0)
我有同样的问题,我通过改变我的能力来解决它,以避免能力重叠。这意味着,如果用户是管理员,那么他就没有为其他用户设置的能力。
导致错误的重叠示例:
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