如何重构Rails表单组件

时间:2013-12-22 16:05:22

标签: ruby-on-rails

我试图将form_fornew.html.erb中的重复edit.html.erb分开。
我认为有两种方法可以做到这一点:

  1. 将整个form_for代码放入部分代码中。

  2. 仅将字段元素放入部分字段中。

  3. 你选择哪个?这是品味问题吗? 我想知道您的选择是否有任何实际原因 如果你有第三种方式,也欢迎你。

    第一种方式:

     <%= 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 %>
    

    示例很简单,您有更多字段和标签。

1 个答案:

答案 0 :(得分:0)

第一种方式。可读性在这里很重要。第二种方式非常糟糕。

如果你需要检查它是否是你的部分中的新记录,你可以添加:

<% if @user.new_record? %>
  ... your code here ...
<% end %>