Откуда рельсы знают что: что-то есть? - PullRequest
2 голосов
/ 15 сентября 2011

У меня есть следующий код

form.label :artists

который выводит

<label for="artist_artist_name">Artist name</label>

Как рельсы нашли строки artist_artist_name и Artist name?

В общем, как я могу отследить такую ​​информацию?

Я пробовал исполнителей grep -ri * в корне проекта, но результата нет (кроме form.label :artists). То же самое для Artist name ...

1 Ответ

2 голосов
/ 15 сентября 2011

Помощник по форме используется как в следующем фрагменте:

<%= form_for @person do |f| %>
  <%= f.label :first_name %>:
  <%= f.text_field :first_name %><br />

  <%= f.label :last_name %>:
  <%= f.text_field :last_name %><br />

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

Что следует за f.label или f.text_field - это идентификатор свойства объекта, на который ссылается @person.

CSS-идентификатор, который вы заметили, просто получается, объединяя имя переменной с подчеркиванием и имя свойства; метка получается заменой подчеркивания в свойстве пробелами и переписыванием первого слова в заглавном регистре.

Код, о котором я сообщил, сгенерирует следующий HTML (я удалил ненужные части).

<form action="/people" class="new_person" id="new_person" method="post">
  <label for="person_first_name">First name</label>:
  <input id="person_first_name" name="person[first_name]" size="30" type="text" /><br />

  <label for="person_last_name">Last name</label>:
  <input id="person_last_name" name="person[last_name]" size="30" type="text" /><br />

  <input name="commit" type="submit" value="Create Person" />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...