2016-04-03 44 views
0

我有一個簡歷模型和一個教育模型。教育屬於恢復和恢復has_many教育。 我目前正在使用簡歷的show.html.erb視圖中的表單來輸入教育數據,以確保其正常工作。在分配父代之前保存嵌套數據ID

在我routes.rb文件我有:

resources :resumes do 
    resources :educations 
end 

在我educations_controller.rb文件我有這樣的:

def create 
    @resume = Resume.find(params[:resume_id]) 
    @education = @resume.educations.build(education_params) 

    respond_to do |format| 
     if @education.save 
     format.html { redirect_to @resume, notice: 'Education was successfully created.' } 
     format.json { render :show, status: :created, location: @education } 
     else 
     format.html { render :new } 
     format.json { render json: @education.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

這讓我,在我的views/resumes/show.html.erb有以下幾點:

<%= form_for [@resume,Education.new] do |f| %> 
    <div class="field"> 
    <%= f.label :sectionTitle %><br> 
    <%= f.text_field :sectionTitle %> 
    </div> 
    <div class="field"> 
    <%= f.label :completed %><br> 
    <%= f.date_select :completed %> 
    </div> 
    <div class="field"> 
    <%= f.label :degree %><br> 
    <%= f.text_field :degree %> 
    </div> 
    <div class="field"> 
    <%= f.label :school %><br> 
    <%= f.text_field :school %> 
    </div> 
    <div class="field"> 
    <%= f.label :summary %><br> 
    <%= f.text_area :summary %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

這是目前正在工作,並允許我en爲每個簡歷提供多種培訓。

問題是,我首先必須在創建教育項之前創建簡歷條目,因爲教育條目取決於resume_id整數。

我該如何重新構建我的代碼,以便我可以爲特定的簡歷創建多個教育條目,這些條目還沒有ID,這樣本質上,在提交簡歷時會分配一個ID,然後將任何後續教育附加到給出的resume_id並給出自己的教育ID?

我懷疑我可能不得不使用JavaScript,這很好,但即使如此,我不確定一旦攔截默認表單操作該做什麼。

+0

你想創建簡歷#簡歷創造的教育方法與嵌套形式,對不對? –

+0

是的,雖然嵌套表單不是我目前實現的,但我可以使它工作。但是,我不確定如何爲每個簡歷創建多個教育。思考?謝謝您的回覆。 – tfer77

+0

你想在每個簡歷下面設計一次或多次教育嗎? – 7urkm3n

回答

0

這只是一個小例子,但它工作得很好。

在routes.rb中

post 'add_resume_education' => 'resumes#twince' 

在resumes_controller.rb,你的情況。使用你自己的MODEL像簡歷和教育,也改變傳遞params。

def twince 
    resume = Resume.create!(title: params[:data][:category_title]) 
    post = resume.educations.create!(sectionTitle: params[:data][:educations][:sectionTitle]) 
    redirect_to :back, notice: 'Yeah Created' 
end 

在HTML頁面:

<%= form_for :data, url: add_resume_education_path do |f| %> 

    <div class="field"> 
    <%= f.label :category_title %> 
    <%= f.text_field :category_title %> 
    </div> 
<br> 
    <div class="field"> 
    <%= f.fields_for :educations do |edu| %> 
    <div class="field"> 
     <%= edu.label :sectionTitle %><br> 
     <%= edu.text_field :sectionTitle %> 
    </div> 
    <% end %> 
    </div> 

    <br> 
    <%= f.submit 'create' %> 
<% end %> 

而且,這裏相當不錯源,Nested Form

+0

謝謝你。在過去的幾個小時裏一直在使用它,而且似乎教育正在創建,但與簡歷沒有關聯。要繼續嘗試。一旦找出解決方案,我會回覆。 – tfer77

+0

只要做我所做的,它將完美的工作。它的s。。 – 7urkm3n

+0

@ tfer77你有任何驗證嗎? – 7urkm3n