在分配父代之前保存嵌套数据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,这很好,但即使如此,我不确定一旦拦截默认表单操作该做什么。
答
这只是一个小例子,但它工作得很好。
在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
你想创建简历#简历创造的教育方法与嵌套形式,对不对? –
是的,虽然嵌套表单不是我目前实现的,但我可以使它工作。但是,我不确定如何为每个简历创建多个教育。思考?谢谢您的回复。 – tfer77
你想在每个简历下面设计一次或多次教育吗? – 7urkm3n