[英]Update specific column using update_all while doing joins
我有一個類似下面的關聯
用戶has_many角色
用戶has_one權限
該表為用戶,角色和權限命名,它們位於相同的架構和數據庫下
我想獲取角色admin,super_admin,sub_admin。 並想更新權限表中的一列
User.joins(:roles,:permission).where('roles.name in (?)', ['admin', 'sub_admin', 'super_admin']).select("permissions.*").update_all('permission.can_view_details', true)
觸發上述查詢給我錯誤。
由PG :: UndefinedColumn引起:錯誤:關系“ users”的列“ can_view_details”不存在第1行:更新“ schema”。“ users” SET“ can_view_details” = ...
嘗試直接從模型中獲取權限,但要對用戶使用聯接:
Permission.
joins(user: :roles).
where('users.roles IN (?)', %w[admin sub_admin super_admin]).
update_all(can_view_details: true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.