Ruby on rails 4 Rails从多个选择表单更新模型:没有将字符串隐式转换为整数
如果项目Ruby on rails 4 Rails从多个选择表单更新模型:没有将字符串隐式转换为整数,ruby-on-rails-4,Ruby On Rails 4,如果项目有许多类型通过:GenresProject 参数为: def project_params params.fetch(:project, {}).permit(genres_projects_attributes: [:id, {genre_id: []}) end 我的提交表格是: <%= form_for @project do |f| %> <%= f.fields_for :genres_projects_attributes do |ff| %&g
有许多类型通过:
GenresProject
参数为:
def project_params
params.fetch(:project, {}).permit(genres_projects_attributes: [:id, {genre_id: []})
end
我的提交表格是:
<%= form_for @project do |f| %>
<%= f.fields_for :genres_projects_attributes do |ff| %>
<%= ff.select :genre_id, Genre.order(:id).collect{|g| [g.name, g.id]}, {}, { multiple: true } %>
<% end %>
<%= f.submit 'Update'%>
<% end %>
应该
project.update(project_params)
自动遍历流派\u id
数组并创建相应的GenresProject记录?如果没有GenresProject
记录,则无法从参数中获取id
其次,我认为,它不会自动为您创建新的类型
记录或更新一个。您应该自己在update
操作中创建新记录。例如:
params[:project][:genre_id].each do |id|
unless GenreProject.find(id)
# create new record here
GenreProject.create
end
# other updating operations
end
希望它对您有用谢谢,这正是我所期望的,但我不确定。
params[:project][:genre_id].each do |id|
unless GenreProject.find(id)
# create new record here
GenreProject.create
end
# other updating operations
end