非资源路由和POST

时间:2012-01-13 02:48:35

标签: ruby-on-rails routes

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

以下是代码:

#config/routes.rb

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

我尝试过只使用via,而且只使用条件,而且这些都不起作用。我有一个表单,我发送到此操作,但我收到错误:

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

有没有人知道如何让Rails将POST请求路由到此URL到我的交易#payment action?

由于

1 个答案:

答案 0 :(得分:4)

路由中的get方法声明了一条路由,在本例中是一条GET请求。如果要在一行中定义自定义GET和POST,可以使用match

来自Rails Guide

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