ruby-on-rails - 相同模型的两个不同值的记录
问题描述
嘿伙计们,我目前正在我的应用程序中开发一个部分,设计用户可以在其中填写具有过去工作经验和教育程度的表格。我正在使用嵌套属性来创建工作经验和教育记录,效果很好。但我希望能够以相同的形式添加不止一种工作经验和不止一种教育
我尝试使用嵌套属性并尝试在提交表单时创建 2 条记录,这些记录已创建但对雇主具有相同的值
用户.rb
has_many :work_exps
has_many :educations
accepts_nested_attributes_for :work_exps
accepts_nested_attributes_for :educations
经验.html.erb
<%= form_for :user, url: 'experience' do |f|%>
<h3>work experience:</h3>
<%= fields_for :work_exps do |u| %>
<%= u.label :employer %><br />
<%= u.text_field :employer %><br>
<%= u.label :employer %><br />
<%= u.text_field :employer %>
<% end %>
<%= fields_for :educations do |u| %>
<%= u.label :school %><br />
<%= u.text_field :school %>
<% end %>
路线
post 'care_giver_steps/experience', to: 'care_giver_steps#experience'
控制器
def new
@user = current_user
@user.work_exps.build
@user.educations.build
render_wizard
end
def experience
@user = current_user
2.times{@user.work_exps.create(sanitize_work)}
@user.educations.create(sanitize_education)
redirect_to team_root_path
end
private
def sanitize_work
params.require(:work_exps).permit(:employer,:title)
end
def sanitize_education
params.require(:educations).permit(:major,:school)
end
解决方案
def new
@user = current_user
2.times{@user.work_exps.build}
@user.educations.build
render_wizard
end
def experience
@user = current_user
@user.update(sanitize_params)
redirect_to team_root_path
end
private
def sanitize_params
params.require(:user).permit(work_exps_attributes: [:employer,:title], educations_attributes: [:major,:school])
end
路线.rb
post 'care_giver_steps/experience', to: 'care_giver_steps#experience', as: :care_giver_steps_experience
经验.html.erb
<%= form_for :user, url: care_giver_steps_experience_path do |f|%>
<h3>work experience:</h3>
<%= fields_for :work_exps do |u| %>
<%= u.label :employer %><br />
<%= u.text_field :employer %><br>
<%= u.label :employer %><br />
<%= u.text_field :employer %>
<% end %>
<%= fields_for :educations do |u| %>
<%= u.label :school %><br />
<%= u.text_field :school %>
<% end %>
参考 - Ruby on Rails 嵌套属性
推荐阅读
- google-cloud-platform - 访问权限对于更改模板访问容器注册表无效
- github - 为什么谷歌分析不能在 github 页面上托管的网站上运行?
- javascript - 每次页面加载时都会显示导航栏组件
- postgresql - Postgres db 到雪花的迁移
- android-studio - "import proguard.annotation.Keep" => "无法解析符号'annotation'"
- spring-boot - Spring 的 HATEOAS CollectionModelAssembler 不解析属性注入的 RequestMapping 值
- php - 如何在 sql 数据库中清理和存储小数点
- spring - Spring JPA 本机查询从 postgres 的查询中删除了一些列
- .net - 为什么在 Visual Studio 2019 的 Visual Basic 中使用 msgbox 命令时出现错误消息?
- android - 断言失败:第 6075 行 pos 12:'child == _child':不正确