我正在尝试在new.html.erb
和edit.html.erb
中部分化重复的form_for
。
我认为有两种方法可以做到这一点:
-
将整个
form_for
代码放入部分。 -
仅将字段元素放入部分。
你选择哪个?这是品味问题吗?我想知道您的选择是否有任何实际原因。
如果你有第三种方式,它也欢迎。
第一种方式:
<%= render 'form', object: @user, button_name: "Create my account" %>
部分(_form.html.erb
)是:
<%= form_for @user do |f| %>
<%= f.text_field :name %>
<%= f.submit button_name %>
<% end %>
或
第二种方式:
<%= form_for @user do |f| %>
<%= render 'fields', f: f %>
<%= f.submit "Create my account" %>
<% end %>
部分(_fields.html.erb
)是:
<%= f.text_field :name %>
示例很简单,您有更多的字段和标签。
第一种方式。可读性在这里很重要。第二种方式真的很糟糕。
如果您需要检查它是否是部分中的新记录,您可以添加以下内容:
<% if @user.new_record? %>
... your code here ...
<% end %>