簡體   English   中英

ActiveRecord。 創建聯合表鏈接。 最短的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM