사용자 및 조직에 조인 모델 UsersOrganisation이 있습니다. 사용자는 조직의 관리자 일 수 있습니다. 그렇다면 is_admin 부울이 참입니다.레일 has_many through with 조건, 새로 빌드
데이터베이스에서 is_admin 부울을 수동으로 설정하면 Organisations.admins가 예상대로 작동합니다.
콘솔에서 나는 Organisation.first.users << User.first
을 수행 할 수 있으며 예상대로 organisations_users 항목을 만듭니다.
그러나 내가 수행 할 경우 Organisation.first.admins << User.last
은 관리자가 아닌 일반 사용자를 만듭니다. 즉, 조인 테이블의 is_admin 부울이 올바르게 설정되지 않았습니다.
직접 조인 테이블에 항목을 만드는 것 외에 다른 작업을 수행하는 좋은 방법이 있습니까?
class User < ActiveRecord::Base
has_many :organisations_users
has_many :organisations, :through => :organisations_users
end
class Organisation < ActiveRecord::Base
has_many :organisations_users
has_many :users, :through => :organisations_users
has_many :admins, :through => :organisations_users, :class_name => "User",
:source => :user,
:conditions => {:organisations_users => {:is_admin => true}}
end
class OrganisationsUser < ActiveRecord::Base
belongs_to :organisation
belongs_to :user
end
그것을'has_many 확인 : 관리자가, : => ... ... 통해 '실제로 선택을 위해 작동합니다, 데이터를 삽입하는 것이 아닙니다. 따라서'Organisation.first.admin << User.last'를 실행하면 정상적인 항목 만 생성됩니다. 그러나,임이 같은 방법으로 궁금합니다. 귀하의 질문에 Thnx. – Samiron