2013-12-22 4 views
0

Я пытаюсь отфильтровывать дубликаты form_for в new.html.erb и edit.html.erb.
Я думаю, что есть два способа сделать это:Как реорганизовать компонент формы рельсов

  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 %> 
Смежные вопросы