【问题标题】:Params not being saved in rails参数未保存在 Rails 中
【发布时间】: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


【解决方案1】:

我删除了include Service,现在似乎一切正常

【讨论】: