Переконфигурация HTML / Ruby-кода. Могу ли я быть уверен, что это изменение по-прежнему делает то же самое? - PullRequest
0 голосов
/ 30 ноября 2011

Я использую Devise для регистрации пользователей.Это автоматически дает мне форму для нового сеанса:

<%= form_for(resource_name, resource, :url => session_path(resource_name)) do |f| %> 
.
.
.
<% end %>

У меня есть адрес электронной почты и метка пароля и поля, такие как:

<div class = "field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
</div>
<div class = "field">
    <%= f.label :password %><br />
    <%= f.password_field :password %>
</div>

Но я хотел бы добавить классполя text_field и password_field, чтобы я мог оформить поля, чтобы они выглядели лучше.

<%= f.text_field :email, :class => "whatever" %>

не сработало, поэтому я заглянул в Rails API, нашел метод text_field и сделал следующее:

<%= text_field(:user, :email, :class => "whatever" ) %>

, который пропускает "f", вызванный в "form_for"...do | f | ".Несмотря на это, я почти уверен, что это сработало, потому что, когда я "Просмотреть исходный код", выходные данные ("id" и "name") совпадают:

<div class = "field">
    <label for="user_email">Email</label><br />
    <input id="user_email" name="user[email]" size="30" type="text" value="" />
</div>



<div class = "field">
    <label for="user_email">Email</label><br />
    <input class="whatever" id="user_email" name="user[email]" size="30" type="text" value="" />
</div>

Все это прекрасно, что работает и источникПохоже, что все в порядке, но я просто хочу получить подтверждение от более опытных разработчиков, чтобы убедиться, что это определенно работает и что за кадром нет ничего плохого, прежде чем я внесу изменения и у меня возникнут проблемы позже.

1 Ответ

0 голосов
/ 30 ноября 2011

Что-то еще не так в вашем коде.

<%= f.text_field :email, :class => "whatever" %>

Делает то, что вы хотите: вам не нужно указывать модель user, потому что построитель форм (f) знает, какоймодель, с которой он имеет дело.

Для получения дополнительной информации прочитайте вводный абзац здесь: http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-text_field

...