처음으로 활성 레코드 연결을 만들고 있는데 추가 한 후에 무엇을 기대해야하는지 알고 싶습니다. 응용 프로그램이 사용자에 속하기 때문에 나는 레일 3.2.14ActiveRecord 모델에서 연결을 추가 할 경우의 이점은 무엇입니까?
내가 3 개 테이블 사용자, 응용 프로그램 및 내가 외래 키 컬럼으로 USER_ID 및 작업 ID를 추가 한 응용 프로그램 테이블에서 채용
1]이 사용하고 및 일.
2] 나는 또한 필요한 연관성을 추가했습니다.
3] 외래 키 열과 연관을 추가 한 후 rake db : migrate를 실행하거나 관계형 모델링을 완료하기 위해 다른 작업을 수행해야합니까?
내가 작업 링크를 클릭 한 후 새 응용 프로그램을 만들 때, 나는 작업 ID와 USER_ID가 자동적으로 응용 프로그램의 프레임 워크에 의해 채워 것이라고 기대했다 일부 문맥 이제
: 그것은
을 수행한다 방법을 만들 수그러나 external_key 열이 프레임 워크에 의해 채워지지 않은 것처럼 보입니다. create 메소드에서 해당 job_id와 user_id를 수동으로 추출하여 응용 프로그램에 채워야합니다.
연관을 추가하지 않는 한 가지 장점은 나중에 관계가 has_many 대신에 has_and_belong_to_many 인 것을 깨닫는 것입니다. 연관성이 그 지점에서 '고정'되어 있지 않기 때문에 테이블에서 처리 할 수 있습니다.
나는 다음과 같은 질문이 : 모델의 연관을 정의의 이익이 무엇
1]. 방금 외래 키 열을 추가하고 모델에서 연관시키지 않고 처리 할 수있었습니다.
2] 모델에 연관성을 추가하여 (내 인생을 더욱 쉽게 만들어 줄 수있는) 다른 것들은 무엇입니까?
여기 모델은 다음과 같습니다 이 동영상에 대한 링크를 제공 자유롭게
Models:
class User < ActiveRecord::Base
rolify
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :role_ids, :as => :admin
attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :user_id
validates_presence_of :email
end
class Job < ActiveRecord::Base
attr_accessible :company, :desc, :location, :application_id, :applicant_id
belongs_to :recruiters, :class_name => "User"
has_many :applications
has_many :applicants,:class_name => "User", through: :applications
end
class Application < ActiveRecord::Base
attr_accessible :applicant_email, :applicant_name, :recruiter_id, :applicant_id, :user_id
belongs_to :jobs
belongs_to :applicants, :class_name => "User"
end
주, 이러한 일들이 간단하게 설명 주석 섹션의 블로그. 나는 모든 단계를 이해하는 데 도움이되는 공식 문서를 찾지 못했습니다. 찾을 수있는 관련 레일스 캐스트가 없습니다.
답변 해 주셔서 감사합니다. 연관성이 더 쉬운 쿼리를 작성하는 예제를 줄 수 있습니까? 또한 일반적인 작업이 더 간단 해 집니까? – codeObserver