ruby-on-rails - 如何在 Rails 中以嵌套形式更新子对象

标签 ruby-on-rails view controller parent-child nested-forms

我有一个嵌套表单 Parent,它接受 Child 的属性。 在我的 Controller #new 中,我这样做

  @parent = Parent.new
  @parent.childs.build

嵌套表单工作正常

为了更新父级和子级,在我的 Controller #edit中,我有

  @parent = Parent.find(params[:id])
  @parent.childs.build unless not @parent.childs.empty?

现在,如果我进入编辑页面,只会显示父级字段。我的问题是: 如何让 Rails 知道我想要父级和子级的表单,而不仅仅是父级?

谢谢

最佳答案

使用 fields_for 帮助器 - 它几乎可以为您完成所有事情。

<%= form_for @parent do |f| %>
  <%= f.text_field :name %>
  <%= f.fields_for :children, @parent.children do |c| %>
    <%= c.text_field :name %>
  <% end %>
<% end %>

关于ruby-on-rails - 如何在 Rails 中以嵌套形式更新子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10003806/

相关文章:

ruby-on-rails - Rack rSpec Controller Tests with Rack Middleware 问题

swift - 子类 View

java - 如何返回 GetMapping 路径 id 的对象

php - MVC PHP : Data manipulation in View loop or Controller loop (ie. 1 个循环或 2 个循环)

ruby-on-rails - 如何将默认过滤器传递给Filterrific get

ruby-on-rails - tmp/sockets/unicorn.sock 是否应该为我们的 unicorn 服务器的 capistrano 部署进行符号链接(symbolic link)

ruby-on-rails - 条件页面缓存 [解决方案 : Conditional Fragment Caching]

javascript - 输入 javascript 验证仅在最后一个有效

android - 如何复制 View 的所有属性?

CodeIgniter 未按预期加载 View