Jes*_*ott 68
您可以使用request.post检查它是否是帖子?
if request.post?
#handle posts
else
#handle gets
end
Run Code Online (Sandbox Code Playgroud)
让你的路线工作:
resources :photos do
member do
get 'preview'
post 'preview'
end
end
Run Code Online (Sandbox Code Playgroud)
这是另一种方式.我包含了示例代码,用于响应不支持的方法405,并在URL上使用OPTIONS方法时显示支持的方法.
在 app/controllers/foo/bar_controller.rb
before_action :verify_request_type
def my_action
case request.method_symbol
when :get
...
when :post
...
when :patch
...
when :options
# Header will contain a comma-separated list of methods that are supported for the resource.
headers['Access-Control-Allow-Methods'] = allowed_methods.map { |sym| sym.to_s.upcase }.join(', ')
head :ok
end
end
private
def verify_request_type
unless allowed_methods.include?(request.method_symbol)
head :method_not_allowed # 405
end
end
def allowed_methods
%i(get post patch options)
end
Run Code Online (Sandbox Code Playgroud)
在 config/routes.rb
match '/foo/bar', to: 'foo/bar#my_action', via: :all
Run Code Online (Sandbox Code Playgroud)
只需要使用它,只在相同的路线上使用get和post
resources :articles do
member do
match 'action_do-you_want', via: [:get, :post]
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21592 次 |
| 最近记录: |