У меня есть form_for, написанный следующим образом:
<div class="field">
<%= location.label :city %>
<%= location.text_field :city, :disabled=>true%>
</div>
<div class="field">
<%= location.label :country %>
<%= location.text_field :country, :disabled=>true%>
</div>
Как видите, 2 текстовых поля отключены, потому что они автоматически заполняются функцией jquery, и я не хочу, чтобы пользователь мог их обрабатывать. Проблема в том, что таким образом представление не передает эти параметры контроллеру, потому что они отключены !!! Есть ли другой способ передать не редактируемое текстовое поле контроллеру, заботясь о том, чтобы я не хотел использовать скрытое поле, потому что я хочу показать результаты пользователю внутри текстового поля
TNX
Ответы:
Сделайте это только для чтения!
<%= location.text_field :country,:readonly => true%>
источник
disabled
иread-only
и делает его ясно , что инвалиды входы не должны быть представлены вместе с данными формы.:disabled => true
не отправил свое поле.Create
действия?readonly="readonly"
атрибутinput
тега и отредактировать текстовое поле по своему желанию. Если вам действительно нужно, чтобы это было безопасно, полностью удалите поле ввода или подтвердите ввод формы в модели. В любом случае это был очень полезный ответ.Уловка состоит в том, чтобы использовать «объект» вместе с меткой для всего, что вы не хотите менять. Вот как это следует закодировать:
<%= location.label(:country, f.object.country) %>
источник