2011-01-08 7 views
0

레일스 가이드를 살펴 보았지만 유효성 검사와 마이그레이션을 거친 후에 연관성을 고수했습니다. 그래서 저는 Person이 많은 직업을 가질 수있는 Job and Person 모델을 가지고 있습니다. 현실적으로는 many to many가 많을 거라는 것을 압니다. 그러나 먼저이 일을 처리하려고합니다.레일즈 어소시에이션으로 레코드 저장

class Job < ActiveRecord::Base 
    belongs_to :people 
end 

class Person < ActiveRecord::Base 
    has_many :jobs 
end 

다음은 스키마

ActiveRecord::Schema.define(:version => 20110108185924) do 

create_table "jobs", :force => true do |t| 
    t.string "occupation" 
    t.boolean "like" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.integer "person_id" 
end 

create_table "people", :force => true do |t| 
    t.string "first_name" 
    t.string "last_name" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
end 

end 

몇 가지 내가 다음 j = Job.first; j.Person을 할 수 있나요입니까? 그러면 j와 관련된 Person 객체에 액세스 할 수 있습니다. 나는 guide.rubyonrails.org에서 그것을 찾을 수 없었지만, 마이그레이션과 유효성 검사에 대한 이해를 돕는 데 매우 도움이되었습니다.

감사

PS, 더 많은 링크가 좋은 것 사물의 종류의 커버 어떤 자습서가있는 경우.

답변

0

귀하의 질문에 대한 권리가 있는지 확실하지 않습니다. 그러나 스키마를보고, 나는 당신이 올바른 길에 있다고 말해야합니다. 당신이 겪고있는 문제는 무엇입니까?

또한 belongs_to는 실제로 belongs_to : person이어야합니다. 즉, 직업은 한 사람에게 속하고 각 사람은 많은 직업을 가질 수 있습니다.

+0

내가 j = Job.new 일 경우; j.occ = "회계사"; j.like = false; j.person_id = 1; j.save 그러면 j.Person으로 이동하여 액세스하려고합니다. 메소드 오류가 없습니다. – tshauck

+0

개인 소문자 p 여야합니다. try j.person –

+0

또한 id = 1 인 Person 객체가 있는지 확인합니다. 그렇지 않은 경우 j.person은 nil을 반환합니다. –

관련 문제