在分配父代之前保存嵌套数据ID

问题描述:

我有一个简历模型和一个教育模型。教育属于恢复和恢复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

这只是一个小例子,但它工作得很好。

在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