【问题标题】:Routing error using form_tag使用 form_tag 的路由错误
【发布时间】:2011-02-09 17:32:50
【问题描述】:

我有一个路由问题,我似乎无法解决。

我有一个项目资源,它的所有剩余操作都按预期工作。

现在我想添加通过一个小的弹出表单更新一个特定属性的功能。所以在这个弹出窗口中我使用:

form_tag (@project) do
  text_field_tag :attribute_i_want_to_update, ''
  submit_tag 'go'

在控制器的更新操作中,我打算处理这个特定的提交。但是,我收到一个路由错误,声称没有到“/projects/15”的路由。我检查了请求是否使用 POST。显然,存在一条通往“/projects/15”的 POST 路线(例如,常规更新路线可以正常工作并发布到该确切路线)。

我错过了什么?

感谢您的宝贵时间,
欧文

【问题讨论】:

    标签: ruby-on-rails forms routing


    【解决方案1】:

    您是否尝试将其指定为 PUT 请求:

    form_tag(@project, :method => :put) 做 text_field_tag :attribute_i_want_to_update, '' submit_tag '去'

    【讨论】:

      【解决方案2】:

      我有类似的问题,看到它here

      如果对象不是新对象,那么 rails(至少 3 个这样做)将寻找 PUT 路由,而不是 POST。如果您检查真正发送到服务器的内容,例如使用 Firebug,您将看到一个 POST 已生成,但带有参数“_method=put”。

      Rails 会寻找 PUT 路由来更新现有对象,这符合 Fielding 对 REST 的定义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-02
        相关资源
        最近更新 更多