在没有持久对象的RESTful路由的ID上提交表单

时间:2012-08-22 22:15:20

标签: ruby-on-rails forms rest routes resource-id

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生成逻辑。我的控制器对第三方API进行HTTP调用以获取信息,因此没有XYZ :: Catalog :: Device持久化(没有@device)来实现通常的rails form helper技巧。

我想创建一个如下表单:

%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 个答案:

答案 0 :(得分:0)

听起来你正在寻找的是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"