Отправить дополнительный параметр через форму в рельсах 3
Есть ли способ отправить дополнительный параметр через форму в rails 3?
Например:
<%= form_for @post do |f| %>
<%= f.hidden_field :extraparam, :value => "22" %>
<% end %>
но скажем: extraparam не является частью модели сообщения.
У меня есть неизвестная ошибка атрибута в методе создания контроллера, когда я пытаюсь это сделать, любые идеи?
(Я хочу использовать значение параметра непосредственно в контроллере для некоторой дополнительной логики)
Ответы
Ответ 1
Вызовите hidden_field_tag
напрямую. См.: http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-hidden_field_tag
Эти помощники существуют для всех типов полей основных форм и удобны, когда вам нужно выйти за рамки ваших методов модели.
Ответ 2
Следующее работало для меня, передавая дополнительные параметры из представления обратно контроллеру, который был частью моей модели, а не частью моей модели.
<%= hidden_field_tag :extraparam, value %>
Пример использования
<%= hidden_field_tag :name, "John Smith" %>
Ответ 3
Я. Павел прав. Hidden_field связано с вашей моделью, тогда как дополнительные поля _tag - нет. Я не уверен в ваших потребностях, но, как правило, рекомендуется в сообществе RoR избегать передачи тонны скрытых полей, как это можно сделать в приложении php.
Я видел некоторый код, в котором идентификаторы проходили в скрытых полях, которые рельсы сами по себе заботятся, если вы знаете лучшие практики и в полной мере используете инфраструктуру. Конечно, я просто говорю об этом как об общей информации, так как иногда существуют лучшие способы достижения такой же функциональности. Удачи в ваших приложениях.