[英]Can't update user in Rails_Admin for and model with belongs_to :user
我有2種情況,但都解決了相同的結果。 兩種情況都涉及嘗試通過Rails_admin更新具有兩個模型的“ belongs_to:user”關聯的記錄。
方案1:我需要更新屬於用戶的視頻記錄。 如果我嘗試更改分配了此視頻的用戶,則user_id將始終更改為登錄Rails_Admin的管理員的user_id。 無論我嘗試編輯哪個字段,user_id都將更改為當前登錄的Admin。
方案2:我需要更新一個用戶的個人資料記錄上的信用額度。 再一次,即使我看不見該用戶,無論我更改哪個字段,user_id都將更改為當前登錄的管理員的user_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
聽起來您的cancan配置有問題。
檢查像這樣的行:
可以:管理,視頻,用戶:user
在這種情況下,RailsAdmin會將user_id的任何值覆蓋為current_user。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.