将表单重构为部分

时间:2018-11-22 11:56:49

标签: ruby-on-rails ruby

我有两种注册表格,都适用于Customer模型,但具有不同的字段。

表格1

<%= simple_form_for @customer, url: registration_path do |f| %>
...
   <%= f.input_field :marketing, as: :boolean, boolean_style: :inline, id: "marketing" %>
<% end %>

表格2

  ...   

表格1的同意复选框需要选中。我想在其他表单中添加相同的同意复选框。我将复选框部分移到了部分,并以表单的形式呈现,但是出现错误:

udnefined variable or method 'f'

部分shared/_consents.html.erb

<%= f.input_field :marketing, as: :boolean, boolean_style: :inline, id: "marketing" %>

如何重构原始表格,以便可以有一个单独的部分,可以添加到其他表格中?

1 个答案:

答案 0 :(得分:2)

您需要将表单构建器对象(f变量)传递给部分对象,例如

render partial: 'shared/consents.html.erb', locals: {f: f}

https://guides.rubyonrails.org/layouts_and_rendering.html#passing-local-variables