现在我正在尝试为我的应用程序编写自己的自定义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?
由于
答案 0 :(得分:4)
路由中的get
方法声明了一条路由,在本例中是一条GET请求。如果要在一行中定义自定义GET和POST,可以使用match
。
来自Rails Guide:
匹配'photos / show'=> 'photos#show',:via => [:get,:post]