[英]ActiveRecord. Create joint table link. Shortest way
因此,在向用戶添加角色時,我試圖獲得一個單行。 我使用的是多對多關系,我的聯合表稱為UserRoles。
最簡單的方法是什么?
我最好的解決方案是:
user.user_roles << UserRole.create(role_id: 1)
我遇到的問題是,我必須依靠role_id
。 我想通過字符串找到它,因此在代碼中很清楚它是什么角色。
user.user_roles.create(role_id: 1)
是創建角色的更簡潔的方法。
如果要使用角色字符串,則可以在模型中使用可以引用的常量。 但是隨后您應該向模型添加role
屬性。
class UserRoles
ROLES = ['A', 'B']
validates_inclusion_of :role, in: ROLES
end
validates_inclusion_of
將在創建對象之前驗證您是否具有允許的角色。
我正在玩它,並決定使用以下內容:
user.user_roles << Role.find_by(role: 'registered').user_roles.create
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.