【发布时间】:2012-09-13 13:35:40
【问题描述】:
我正在尝试在控制器中定义自定义 post 操作,但我有一些问题。
这是我的控制器:
module Api
module V1
class ExamplesController < ApplicationController
def create_a
...
end
def create_b
...
end
end
end
end
我希望两个动作/方法都是post 动作。这是我的路线文件中的内容:
namespace :api do
namespace :v1 do
match 'examples/create_a', :controller => 'examples', :action => 'create_a'
match 'examples/create_b', :controller => 'examples', :action => 'create_b'
end
end
我可以通过get 请求访问这两种方法,但我想基于http post 触发它们。此外,如果我通过rake routes 进行检查,它不会告诉我它是否是 GET、PUT、POST 等方法。它只是空白。如何告诉路由它应该是 post 方法?
浏览器中的post 请求在我的方法中看起来如何?
url: http://localhost:3000/api/v1/examples/create_a.json/create_a
header: Content-Type: application/x-www-form-urlencoded
data: paramA=45¶mB¶mC
这是对我的控制器操作 create_a 执行 post 的正确 URL 模式吗?
【问题讨论】:
-
尝试“post”而不是“match”。“match”默认获取操作。
-
"match" 应该路由任何类型的请求,至少对我来说是这样。
-
希望您不介意编辑。我清理了一些小的格式化内容,并将标题改写为 (a) 更具体地针对您的问题,以及 (b) 将其形成一个问题。
标签: ruby-on-rails api controller action