Отправить форму по 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"
Другие вопросы по тегам