代码之家  ›  专栏  ›  技术社区  ›  oldhomemovie

RubyonRails:窗体和单选按钮问题

  •  0
  • oldhomemovie  · 技术社区  · 14 年前

    我有一张关于物品清单的表格。我想检查列表上的单选按钮,然后单击“提交”后,转到所选项目的“编辑”页。

    问题是如果我写的是

    <%= form_tag edit_item_path %>
    

    但是Rails抱怨我没有提供合适的 id ,依次在我的单选按钮上设置如下:

    <%= radio_button 'item', 'id', item.id %>
    

    那么-如何将具有选定ID的表单发送到给定操作?

    1 回复  |  直到 14 年前
        1
  •  1
  •   fflyer05    14 年前

    按照您描述的方式进行操作将不起作用,因为默认的restful路径定义下的edit_item_path是一个get请求。您正试图将其作为一个post请求。如果你想坚持做事情的宁静方式,我建议你简单地循环浏览你的项目,并提供链接进行编辑,因为你打算一次编辑一个。否则,如果您希望在表单中使用单选按钮进行操作,则必须定义新的路由。如果是的话,那么可以在config/routes.rb中添加类似的内容:(假设您使用的是rails 2.3.x)

    
    map.resources :items, :member =>{:edit_radio_form => :post}
    
    

    你的表格看起来不像这样: <%= form_tag edit_radio_form_item_path do |form| %> 它应该可以工作,但它不是正确的方式做事情有几个原因,最另一个原因是你不会得到一个完整的URL在你的编辑页面,因为你得到了一个张贴请求,所以如果你刷新页面,你的项目ID参数将消失,并将产生一个错误。