Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:将嵌套表单拆分为部分_Ruby On Rails_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails Rails:将嵌套表单拆分为部分

Ruby on rails Rails:将嵌套表单拆分为部分,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,我有一个嵌套表单,它工作得非常好,但是,我正在尝试找出如何将嵌套表单拆分为部分表单 原件: <%= form_for(@user) do |f| %> <%= f.fields_for :achievements, Achievement.new do |ff| %> <div class="field"> <%= ff.label :certification_name, 'Cert Name' %>

我有一个嵌套表单,它工作得非常好,但是,我正在尝试找出如何将嵌套表单拆分为部分表单

原件:

  <%= form_for(@user) do |f| %>

    <%= f.fields_for :achievements, Achievement.new do |ff| %>

    <div class="field">
      <%= ff.label :certification_name, 'Cert Name' %>
      <%= ff.text_field :certification_name %>       
    </div>

    <% end %><!-- fields_for -->

    <%= f.submit 'Save', id: "submit-achievement", class: 'btn btn-primary' %> 

这就是我想做的

  <%= form_for(@user) do |f| %>

    <%= f.fields_for :achievements, Achievement.new do |ff| %>

      <%= render partial: 'achievements/new_certification' %>

    <% end %><!-- fields_for -->

    <%= f.submit 'Save', id: "submit-achievement", class: 'btn btn-primary' %>

这是部分原因

<div class="field">
  <%= ff.label :certification_name, 'Cert Name' %>
  <%= ff.text_field :certification_name %>       
</div>

问题是它不知道如何处理“ff”变量

ActionView::Template::Error (undefined local variable or method `ff' for #<#<Class:0x007fdccd5498c0>:0x007fdcc04894d8>):
ActionView::Template::Error(未定义的局部变量或#的'ff'方法):

您可以通过将局部变量传递给局部变量来实现这一点,如下所示:

<%= render partial: 'achievements/new_certification', locals: {ff: ff} %> # not a fan of the naming
#不喜欢命名
然后在成就/u new\u certification.html.erb中



您应该仔细阅读如何将局部变量与partials结合使用。您需要以本地人身份传入
ff
。谢谢,就这样。必须以当地人的身份通过ff考试。超级的!你应该把接受扔给@cyzanfar,因为他实际上是写了一个答案(如果心情适合你的话)。谢谢!谢谢你的帮助。嵌套形式现在很适合使用partials。
<div class="field">
  <%= ff.label :certification_name, 'Cert Name' %>
  <%= ff.text_field :certification_name %>       
</div>