레일스를 처음 접했을 때 많은 사람들이 ActiveRecord와 연관이 어떻게 작동하는지 파악하는 데 어려움을 겪고있는 것 같습니다.레일 1 대 다수 협회가 레코드를 반환하지 않음
나는 세 가지 모델, 사용자, 프로젝트 및 작업이 있습니다
Class User < ActiveRecord::Base
has_many :projects
has_many :tasks
end
Class Project < ActiveRecord::Base
has_many :tasks
belongs_to :user
end
Class Task < ActiveRecord::Base
belongs_to :projects
belongs_to :user
end
두 프로젝트 및 작업을 모두 현장 user_id
을 가지고 있습니다. 작업의 필드는 project_id
입니다.
사용자가 모든 프로젝트 및 작업을 조회 할 수 있기를 기대합니다. 그러나, 나는하려고 할 때마다, 나는 프로젝트 및 작업이있는 경우에도 빈 배열을 얻을 :
usr = User.find(1)
=> [User id: 1, name: "Some Guy"]
usr.projects
=> []
usr.tasks
=> []
내가 프로젝트를 통해 작업에 대한 쿼리 할 때이 작업을 수행합니다
proj = Project.find(1)
=> [#<Project id: 1, user_id: 1, description: "Some Project">]
proj.tasks
=> [#<Task id: 1, user_id: 1, project_id: 1, description: "Do Something">,
#<Task id: 2, user_id: 1, project_id: 1, description: "Do another thing">]
나는 has_many
을 믿습니다 및 belongs_to
설정은 정확합니다. 다른 모델이 사용자에게 연결되어 있고 올바르게 작동하기 때문입니다. 내가 누락 된 아이디어가 있습니까?
연결에 대문자가 오타가 있습니까? –
프로젝트에 작업이 있고 사용자에게 작업이 있습니까? 또는 사용자에게 프로젝트가 있고 프로젝트에 작업이 있습니까? – c0deNinja
DaveNewton : "usr.Projects"및 "usr.Tasks"? 예. 그들은, 또는 오히려, 오히려. 수정 됨. 감사. –