2013-12-22 37 views
0

我試圖在new.html.erbedit.html.erb中偏重複form_for
我認爲有兩種方法可以做到這一點:如何重構Rails窗體組件

  1. 把整個form_for碼分成部分。

  2. 僅將字段元素放入部分。

你選擇哪一個?這是味道的問題嗎? 我想知道是否有任何實際的理由供您選擇。
如果你有第三種方式,也是受歡迎的。

第一種方式:

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

例子simplyfied,你有更多的字段和標籤。

回答

0

第一種方法。可讀性在這裏很重要。第二種方式非常糟糕。

在您需要檢查,如果它在你的部分新紀錄的情況下,你可以補充一點:

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