Почему в моих полях ввода отсутствует знак вопроса? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть логическое поле на одной из моих моделей: active?, оканчивающееся знаком вопроса в соответствии с соглашением Rails. Однако в моей форме вопросительный знак удаляется из HTML в имени поля:

Форма:

<%= form_for @singer do |f| %>
    <%= f.label :active? %>
    <%= f.check_box :active?, :checked => true %>
    <%= f.submit %>
<% end %>

HTML:

<form class="new_singer" id="new_singer" action="/singers" accept-charset="UTF-8" method="post">
    <label for="singer_active">Active?</label>
    <input name="singer[active]" type="hidden" value="0" /><input type="checkbox" value="1" checked="checked" name="singer[active]" id="singer_active" />
    <input type="submit" name="commit" value="Create Singer" data-disable-with="Create Singer" />
</form>

Я не могу найти ничего, чтобы предположить, почему это происходит. Если я открою консоль, я смогу создать новый экземпляр с active?: true без проблем.

1 Ответ

0 голосов
/ 10 мая 2019

Соглашение rails заключается в использовании ? для методов , которые возвращают логическое значение.Не следует добавлять ? к атрибуту модели.Вы должны переименовать свой атрибут в активный с логическим значением, например: active:boolean.Это даст вам метод с именем active?, который вернет либо true, либо false, в зависимости от того, активен певец или нет.Тогда ваша форма должна работать.

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