【发布时间】:2023-04-21 16:19:01
【问题描述】:
免责声明:我对 Ruby + rails 很陌生。我不确定这是否是一个错误,但我的 params 变量似乎总是为空。我正在处理一个庞大且不熟悉的代码库,所以我不确定是其他干扰还是我自己的代码;但是,任何建议都会受到欢迎。
在我的路由文件中,我有match '/proxy_request/:number/:ref' => 'proxies#show', via: :get- 我的印象是这会将:number 和:ref 变量存储在params 中。但是,当我的 proxies#show 函数运行(如下)时,params 是一个空哈希。
如果可能是其他东西干扰了params,是否有其他方法可以将:number 和:ref 传递给proxies#show?
class ProxiesController < ApplicationController
include Service
skip_before_action :restrict_access!
def show
binding.pry #params is null here
data = { date: Adapter.staging_date.get(params[:number], params[:ref])}
render json: data, content_type: "application/javascript", callback: @_request.env["QUERY_STRING"].match(/jQuery\d*_\d*/)
end
end
【问题讨论】:
-
所以您正在使用看起来像
/proxy_request/x/y的路线访问它,正确的x是:number 和y是:ref?这就是这些变量最终在参数中的方式。 -
这条路线怎么称呼?
-
你是在正确的方式。再次检查您的链接。
-
@engineersmnky 是的,但是它们没有被传入;可能是访问控制问题
-
您使用的是哪个 Rails 版本?
标签: ruby-on-rails ruby controller routing params