Rails嵌套表单不更新嵌套模型

用户名

我在尝试更新表单中的嵌套模型时遇到麻烦。我没有任何错误,但是属性没有更新。

我有以下模型:

class Trip < ActiveRecord::Base
  has_many :segments
  accepts_nested_attributes_for :segments, allow_destroy: true
end

class Segment < ActiveRecord::Base  
  belongs_to :start_location, class_name: 'Location'
  belongs_to :end_location, class_name: 'Location'
  belongs_to :trip

  validates_presence_of :date, :start_location, :end_location  
end

class Location < ActiveRecord::Base
  has_many :segments
end

并将此代码放在_form.html.erb中:

<%= form_for @trip do |f| %>
...
  <%= f.fields_for :segments do |builder| %>
    <%= render 'segment_fields', f: builder %>
  <% end %>
...
<% end %>

这在_segment_fields.html.erb部分中:

<%= f.collection_select :start_location_id, Location.order(:name), :id, :name %> -
<%= f.collection_select :end_location_id, Location.order(:name), :id, :name %> <br>
<%= f.date_field :date %>

在我的控制器中,我还允许:segments_attributes的分配

def trip_params
  params.require(:trip).permit(:name, :start_date, :end_date, :segments_attributes)
end

有人知道我的不足或做错了什么吗?

曼迪普

当您创建新记录时,您不需要其ID因为它尚未创建,但您想要更新记录时,需要将ID传递给允许的属性,否则它将与create一起使用,但不适用于当您创建记录时要更新您的记录,因此您需要执行以下操作:

def trip_params
  params.require(:trip).permit(:id, :name, :start_date, :end_date,  segments_attributes: [:id,:start_location_id,:end_location_id, :date])
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails:嵌套模型表单未创建记录

来自分类Dev

Rails 4.1嵌套模型表单字段

来自分类Dev

Rails:嵌套模型表单未创建记录

来自分类Dev

Rails:嵌套表单不创建记录

来自分类Dev

嵌套表单Rails字段不会更新

来自分类Dev

为什么不更新Rails中嵌套表单字段的动作?

来自分类Dev

Rails 4:嵌套表单

来自分类Dev

Rails多个嵌套表单

来自分类Dev

Rails 4:嵌套表单

来自分类Dev

Rails:嵌套表单问题

来自分类Dev

Rails保存嵌套模型

来自分类Dev

在嵌套模型表单Rails 4中删除记录的问题

来自分类Dev

在Rails中使用嵌套模型进行表单验证

来自分类Dev

rails嵌套模型表单has_one关联

来自分类Dev

带有Java语言的Rails 3嵌套模型表单

来自分类Dev

无法更新has_one关联的嵌套模型表单

来自分类Dev

在表单嵌套模型中销毁记录而不是更新

来自分类Dev

Rails:如何将嵌套表单保存到不同的嵌套模型中?

来自分类Dev

使用强参数Rails创建和更新嵌套模型

来自分类Dev

使用rails和angularjs更新深度嵌套的模型

来自分类Dev

带嵌套资源Rails的嵌套表单4

来自分类Dev

Rails嵌套表单不保存嵌套属性

来自分类Dev

Rails:多层嵌套表单(接受嵌套属性)

来自分类Dev

Rails:嵌套表单和设置嵌套值

来自分类Dev

带嵌套资源Rails的嵌套表单4

来自分类Dev

使用表单输入而不更新模型Ruby on Rails

来自分类Dev

Rails 4.0中的嵌套表单

来自分类Dev

Rails 4多个嵌套表单

来自分类Dev

Rails 2级嵌套表单