pic*_*rdo 9 routing ruby-on-rails-3
我正在使用这样的路线
match "/v1/:method" => "v1#index"
Run Code Online (Sandbox Code Playgroud)
我的意图是捕获api方法的名称,然后将请求发送到控制器内的该方法.
def index
self.send params[:method], params
end
Run Code Online (Sandbox Code Playgroud)
我认为这会将其他参数作为参数发送给方法,但它不起作用.所以我的问题是如何在查询字符串中传递非方法参数?
小智 14
从同事的工作中偷走了.我发现这是一个稍微强大的解决方案,因为它会工作,即使路径参数有变化:
params.except(*request.path_parameters.keys)
Run Code Online (Sandbox Code Playgroud)
Agi*_*gis 13
#query_parameters 完全符合你的要求:
request.query_parameters
Run Code Online (Sandbox Code Playgroud)
它也是最有效的解决方案,因为它不像其他的那样构造新的哈希.
我通过这样做解决了这个问题:
params.except("method","action","controller")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3425 次 |
| 最近记录: |