Вложенные атрибуты Rails и наследование модели - PullRequest
0 голосов
/ 08 марта 2012

Глядя на пример form_for из rails docs , я вижу этот пример:

<%= form_for @person do |person_form| %>
  First name: <%= person_form.text_field :first_name %>
  Last name : <%= person_form.text_field :last_name %>

  <%= fields_for @person.permission do |permission_fields| %>
    Admin?  : <%= permission_fields.check_box :admin %>
  <% end %>

  <%= f.submit %>
<% end %>

Я попытался скопировать этот шаблон, но заметил, что для корректной работы обновления мне пришлось изменить строку field_for на

 <%= person_form.fields_for @person.permission do |permission_fields| %>

Есть идеи, почему они показывают fields_for без родительской переменной формы впереди (person_form)?

Примеры, приведенные далее в документации, показывают это с родительской переменной формы.

Спасибо

1 Ответ

0 голосов
/ 08 марта 2012

правильно с person_form.думайте об этом как о теге формы, и вы просто назначаете входные данные для формы.все имена формы устанавливаются следующим образом (person [attribute]).fields_for без person_form создаст другое имя, например (разрешение [администратор]) - это не удастся, поскольку объект разрешения не связан с человеком.через person_form.fields_for имена становятся правильными (человек [разрешение] [администратор]).вы получаете вложенный атрибут, не делая ничего больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...