2014-09-06 2 views
0

접합 테이블을 작동 시키려고합니다. 전 전문가, 기술 및 상호 참조 테이블 ProfessionalsSkills의 세 가지 모델이 있습니다.Rails 접합 테이블 이름 오류

프로페셔널 모델

class Professional < ActiveRecord::Base 
    has_many :professionals_skills 
    has_many :skills, :through => :professionals_skills 
end 

기술 모델

class Skill < ActiveRecord::Base 
    has_many :professionals_skills 
    has_many :professionals, :through => :professionals_skills 
end 

상호 참조 테이블 레일 콘솔

class ProfessionalsSkills < ActiveRecord::Base 
    belongs_to :professional 
    belongs_to :skill 
end 

irb(main):005:0* @x = Professional.find(1) 
    Professional Load (0.1ms) SELECT "professionals".* FROM "professionals" WHERE "professionals"."id" = ? LIMIT 1 [["id", 1]] 
=> #<Professional id: 1, gender: 1, first_name: "Goofy", last_name: "Muff", date_of_birth: "1985-07-20 00:00:00", email_address: "[email protected]", city_id: 1, created_at: "2014-09-06 13:04:57", updated_at: "2014-09-06 13:04:57"> 
irb(main):006:0> 
,

하지만 ... 내가하려고하면 내가 잘못 뭐하는 거지

@x.skills 

NameError: uninitialized constant Professional::ProfessionalsSkill 
    from /Library/Ruby/Gems/2.0.0/gems/activerecord-4.1.5/lib/active_record/inheritance.rb:133:in `compute_type' 
    from /Library/Ruby/Gems/2.0.0/gems/activerecord-4.1.5/lib/active_record/reflection.rb:221:in `klass'... 

? 나는 레일 4.1.4 것은 당신이 오류를 자세히 보면 모델이

NameError: uninitialized constant Professional::ProfessionalsSkill 

공지 사항 ProfessionalsSkill하지

ProfessionalsSkills 당신은 이름을 바꿀 필요가 말한다, 단수형에 있어야입니다

답변

2

을 사용하고 있습니다 모형을 단수 형태로, 또한 테이블을 레일 협약과 일치시킵니다.

+0

굉장! 감사! – MiningSam