2012-04-10 4 views
0

ROR3을 사용하는 회사의 직원 레코드 관리 시스템을 개발 중입니다. ROR을 처음 사용했습니다. 한 달 전에 시작되었습니다. 그래서 응용 프로그램을 개발할 때 몇 가지 문제에 직면합니다. 레코드를 테이블에 삽입 할 때 자동으로 대응 ID를 얻는 방법

1 프로파일 ID service_number FIRST_NAME LAST_NAME

2 프로모션 ID 서비스 번호 순위 I 양식을

을 PROFILE_ID date_of_rank 일부 테이블입니다 직원이 다음 순위로 승진했을 때 승진 기록을 삽입 할 수 있습니다.

<%= f.input :service_number %> 
    <%= f.input :rank %> 

    <%= f.input :date_of_rank, :start_year => Date.today.year - 50, :end_year => Date.today.year%> 

     <%= f.hidden_field :profile_id %> 


    <%= f.error :base %> 
    <%= f.button :submit %> 
<% end %> 

내가 사용자가 입력 한 서비스 번호에 PROFILE_ID 기자를 삽입 할 프로모션 테이블에 데이터를 삽입 할 때. profile_id는 사용자의 숨겨진 필드입니다. 따라서 profile_id를 자동으로 가져와야합니다. 회사가 직원을 식별하는 데 사용하는 고유 번호이기 때문에 서비스 번호를 사용하고 있습니다.

누구든지 나를 도와 줄 수 있습니까?

답변

0

profile_id 숨김 태그가 있어야합니까? service_number이 고유 한 필드 인 경우이를 기반으로 Profile을 찾아 작성중인 Promotion에 연결할 수 있습니다.

def create 
    @promotion = Promotion.new(params[:promotion]) 
    profile = Profile.where(:service_number => @promotion.service_number).first 
    @promotion.profile = profile # this will set profile_id for you 

    @promotion.save 
    ... 
end 
당신의 Promotion 모델은 belongs_to :profile 관계를 가지고 있으며, 여러분의 Profile 모델은 has_many :promotions 관계를 가지고 있다고 가정 것

(또는 has_one :promotion).

+0

잘 작동합니다. 고마워. 넌 나를 구했다. – user1290786

관련 문제