좋아, 나는 그것을 시도 줄 것이지만 여기에 너무 많은 코드가없는
를 내가 여기에 3 개 모델을 참조하십시오.
에게
첫 번째 2는 단순한 모델이며 일부 특성이 있습니다. 세 번째 것은 둘 사이의 관계이며 n : m 관계가됩니다. 그러므로 has-many-through 관계를 사용하는 것이 가장 좋습니다. 모델로 다음 ProjectUser
라는 이름의 당신이 추가로 마이그레이션하여 3 개 개의 테이블을 생성하고, 프로젝트의 사용자를 위해 나중에 유사한 관계를 추가해야 물론
class ProjectAdmin < ActiveRecord::Base
belongs_to :project
belongs_to :user
end
class User < ActiveRecord::Base
has_many :project_admins
has_many :projects, :through => :project_admins
end
class Project < ActiveRecord::Base
has_many :project_admins
has_many :admins, :through => :project_admins
end
. 적어도 rails guide about relations, section "has-many :through"을 살펴보십시오.
는이 둘 사이에 일대일 관계이어야 프로젝트에 제작자를 추가하려면, 그래서이하기에 충분해야한다 :
class Project
has_one :creator, :class_name => "User"
end
(및 마이그레이션에 creator_id
물론)
좋아요! 이 답변을하지 않는 유일한 방법은 (그리고 아마도 그것에 대해 더 분명히해야합니다) 어떤 사용자가 프로젝트를 만든 추적하는 방법입니다. 내가 belongs_to 같은 것을 추가 할 수 있다고 생각하고 있었다 : creator, class_name => "User", 그렇다면 User 모델에 무엇을 넣어서 칭찬 하겠는가? –
user.created_projects를 찾을 수 있도록 사용자 모델에 어떤 내용을 입력해야합니까? 내가 has_many : created_projects, : class_name => "projects"를했다면, 프로젝트 테이블의 creator 열에서 가져올 것을 알 수 없습니다. –
신경 쓰지 마, 알아 냈어. has_many : created_projects, : class_name => "Project", : foreign_key => "creator_id"라고 말해야합니다. 고마워요! –