Team
에는 Users
에서 Members
(조인 테이블)이 많은 데이터 모델이 있습니다. 내 Member
모델에는 admin
부울 열이 있습니다. 사용자가 새 팀을 만들면 (가입시) User
에서 true
까지 admin
필드를 설정하려고합니다. 이 작업을 수행하는 가장 좋은 방법이 무엇인지 확신 할 수 없습니다.레일 4 - 만들기 작업에서 조인 테이블의 조건부 기본값을 설정하십시오.
# Team.rb (model for team)
[...]
after_save :set_admin
private
def set_admin
self.members.first.admin = true
end
이것은 전무 포인터 오류 (self.members.first == nil)
결과 : 나는 다음과 같은 노력했다.
그래서 내가 원하는 것을 수행하는 올바른 레일스 방법은 무엇입니까? (사용자가 생성되면 새로운 팀은 사용자뿐만 아니라 팀의 관리자를 확인하십시오.)
업데이트
내 모델 협회은 다음과 같습니다
# Team.rb
has_many :members
has_many :users, through: :members
# Member.rb
belongs_to :user
belongs_to :team
# User.rb
has_many :members
has_many :teams, through: :members
회원 및 사용자 모델 코드를 붙여 넣으십시오. – sp1rs
관련 모델 코드 (내 연관)를 추가했습니다. – Anders