繁体   English   中英

如何仅从URL获得Rails中的参数?

[英]How do I get params in rails that are only from the URL?

我正在写一个可安装在Rails上的gem,它会根据呈现的控制器和动作触发自定义javascript事件。

我想添加一个功能,其中URL的参数可用于事件处理程序:

// 'PATCH /users/:user_id/tasks/:id'
$(document).on('tasks#update', function(data, params){
  console.log(params['user_id'], params['id']);
});

出于安全原因,我想将其限制为源自URL而非请求主体的参数。

由于这是库而不是应用程序代码,因此我不能仅使用URI.parse因为键映射是未知的。

如何获得仅路由器匹配的参数子集?

从控制器(在这种情况下为帮助器)中,您可以从request.path_parametersrequest.query_parameters获得子集。

def body_tag(**opts)
  options = opts.deep_merge(
    data: request.path_parameters.merge(request.query_parameters)
  )
  if block_given?
    content_tag(:body, options) { yield }
  else
    tag(:body, options, true)
  end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM