多数の投稿に関連してさまざまな役割を持つ多数のユーザーがいます。これらの役割はowner
、、、、editor
です。各ユーザーは、投稿に対して1 つのロールのみを持つことができます。これを次のように、Rails で多数のスルー リレーションシップとして表現しました。viewer
none
class User < ActiveRecord::Base
has_many :roles
has_many :posts, :through => :roles
end
class Post < ActiveRecord::Base
has_many :roles
has_many :users, through => :roles
end
class Role < ActiveRecord::Base
attr_accessor :role
belongs_to :users
belongs_to :posts
end
role 属性を使用して、ユーザーが投稿に対して持つ役割のタイプを示します。新しい役割を設定するとき、属性<<
を設定しないため、演算子を単純に使用することはできません。role
この状況を処理するための好ましい方法は何ですか? Role
ユーザー/投稿の組み合わせごとに 1 つのロールしかないことを強制し、作成ロジックでこれを強制するにはどうすればよいですか?