【问题标题】:Non-Resourceful Routes and POST非资源路由和 POST
【发布时间】:2012-02-09 08:15:41
【问题描述】:

现在我正在尝试为我的应用程序编写自己的自定义 Rails 路由,但由于某种原因,当我编写非资源路由时,我无法获取 POST 请求(或除 GET 之外的任何内容)来路由到我指定的操作。我尝试使用 via 关键字,并尝试使用条件哈希,但是当我运行 rake 路由时,我没有看到路由旁边显示 POST 方法。

代码如下:

#config/routes.rb

get "transactions/:id/process", :to => "transactions#payment", :as => :transaction_process,:via => [:get, :post], :conditions => {:method => :post }

我尝试仅使用 via 和 only 条件,但这些都不起作用。我有一个发送给此操作的表单,但我收到错误:

No route matches [POST] "/transactions/8/process"

有人知道如何让 Rails 将 POST 请求路由到此 URL 到我的 transaction#payment 操作吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:

    你的路由中的get 方法声明了一个单一的路由,在本例中是一个 GET 请求。如果您想在一行中同时定义自定义 GET 和 POST,可以使用match

    来自Rails Guide

    匹配 'photos/show' => 'photos#show', :via => [:get, :post]

    【讨论】:

    • 非常感谢,正是我要找的东西
    猜你喜欢
    • 2018-04-20
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    相关资源
    最近更新 更多