0
我建立會員制爲我的Rails應用程序,並有以下型號(無驗證和其他一切):編輯的has_many的多個條目,通過關係
class User < ActiveRecord::Base
has_many :memberships
has_many :subgroups, through: :memberships
end
class Subgroup < ActiveRecord::Base
has_many :memberships
has_many :users, through: :memberships
end
成員模型包含自定義屬性,該屬性擁有會員級別。
class Membership < ActiveRecord::Base
belongs_to :subgroup
belongs_to :user
scope :guests, -> { where(role: 0) }
scope :users, -> { where(role: 1) }
scope :admins, -> { where(role: 2) }
end
我希望用戶能夠在一個位置編輯一個組的所有成員資格。每個組應有三個多選字段來選擇管理員,即用戶&。爲了生成表單我使用simple_form。
它應該看起來像this,但用戶名稱(應該是簡單的部分)和預選用戶爲每個用戶級別填充。
f.association
等不同的內置解決方案不起作用。我試過這個:users
(它產生三個相同的選擇字段)和:memberships
。
所以我正在尋求幫助建立視圖&控制器。
由於我使用的是simple_form,我在視圖中用'<%= f.association:only_users%>'來嘗試第二個解決方案。但它返回'SQLite3 :: SQLException:no such column:users.role:SELECT DISTINCT「users」。* FROM「users」INNER JOIN「memberships」ON「users」。「id」=「memberships」。「user_id」WHERE 「users」。「role」= 1 AND「memberships」。「subgroup_id」=?' – Pascal
正確!您必須:has_many:only_users, - > {where('memberships .role'=> 1).uniq},通過::會員資格,來源::用戶 – Exsemt
「角色」,是Membership或Subgroup中的屬性? – Exsemt