Ruby on rails 嵌套模型不';t更新
我有两种型号:Ruby on rails 嵌套模型不';t更新,ruby-on-rails,ruby-on-rails-4,nested-attributes,Ruby On Rails,Ruby On Rails 4,Nested Attributes,我有两种型号:PointPage和PointPageClass,它们属于:point\u page。当用户创建PointPagerails在数据库中创建几个(现在有6个)PointPageClass。我需要在PointPageedit页面上编辑它们。因此,我在controller和视图中的字段中使用嵌套属性 point\u page\u表单 <%= form_for @point_page, role: 'form' do |f| %> <div class="form
PointPage
和PointPageClass
,它们属于:point\u page。当用户创建PointPage
rails在数据库中创建几个(现在有6个)PointPageClass
。我需要在PointPage
edit
页面上编辑它们。因此,我在controller和视图中的字段中使用嵌套属性
point\u page\u表单
<%= form_for @point_page, role: 'form' do |f| %>
<div class="form-group">
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
</div>
... # some other PointPage fields
<% @point_page.point_page_classes.each do |class| %>
<%= f.fields_for :point_page_classes do |builder| %>
<div class="row">
<div class="col-lg-6">
<%= builder.text_field :distance_price, class: 'form-control' %>
</div>
<div class="col-lg-6">
<%= builder.text_field :show_price, class: 'form-control' %>
</div>
</div>
<% end %>
<% end %>
<%= f.submit 'Save', class: 'btn btn-default' %>
<% end %>
因此,我添加了point\u page\u controller
PointPageClass
属性,但当我保存更改时,它只保存PointPage
的更改,而不保存PointPageClass
(distance\u price
和show\u price
)的更改
谢谢你的帮助 问题之一可能是不允许
点页面参数中的:id
。要进行更新
,您需要允许:id
尝试将您的point\u page\u参数更改为如下所示
def point_page_params
params.require(:point_page).permit(:id,:name, :url, :article,point_page_classes_attributes: [:id,:distance_price, :show_price])
end
你能给我们看看你的模型吗
?你的模型中有接受嵌套的属性吗?:point\u page\u class
?为什么在视图中有这行代码
?上帝保佑冰人:)谢谢你们,伙计们。这真是个愚蠢的错误。我完全忘记了接受
的嵌套属性。我真丢脸:)
def point_page_params
params.require(:point_page).permit(:id,:name, :url, :article,point_page_classes_attributes: [:id,:distance_price, :show_price])
end