Отправить форму по ID RESTful-маршрута без постоянного объекта
Rails 3.2.0 | Ruby 1.9.2
Маршрут:
xyz_catalog_device_info
GET|POST /xyz/catalog/devices/:device_id/info(.:format)
xyz/catalog/devices#info`
Мое приложение объединяет несколько API-сервисов в одну систему, чтобы обеспечить единое место для поддержки SSL-сертификатов и сложной логики генерации XML. Мой контроллер выполняет HTTP-вызов стороннего API для получения информации, поэтому XYZ::Catalog::Device не сохраняется (нет @device) для реализации обычных уловок в виде вспомогательных рельсов.
Я хочу создать форму, подобную следующей:
%form{ :action => xyz_catalog_device_info_path(:format => :xml) }
= label_tag :device_id, "Device ID:"
= text_field_tag :device_id
= submit_tag "Search"
так что он заполнит device_id в действии.
Это возможно без использования JavaScript? Есть ли лучший способ сделать это?
1 ответ
Похоже, вы ищете http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html
Где бы вы просто использовали что-то вроде...
= form_tag(xyz_catalog_device_info_path(:format => :xml)) do
= label_tag :device_id, "Device ID:"
= text_field_tag :device_id
= submit_tag "Search"