【问题标题】:Ruby on Rails: decoding params from urlRuby on Rails:从 url 解码参数
【发布时间】:2020-11-30 12:25:18
【问题描述】:

我开始为 react 创建一个 rails API。我在 url 中传递了一个带有参数的 GET 请求,如下所示:

api/dashboard/price?"foo"="bar"

但默认情况下,我的 rails 应用程序无法在后端正确解码它。我的 params 对象看起来是这样的:

<ActionController::Parameters {"\"foo\""=>"\"bar\"", "controller"=>"api/dashboards", "action"=>"price"} permitted: false>

此外,我无法访问这些密钥中的任何一个,例如:

params[:foo]

返回零

我怎样才能摆脱那些斜线并以正确的方式解码 url 参数?

【问题讨论】:

  • “我传递了一个 GET 请求,其中包含 url 中的参数,就像这样” - 这是你的问题。不要传递这样的参数(带引号)。
  • 您是否尝试过不带双引号的请求? api/dashboard/price?foo=bar

标签: ruby-on-rails ruby api


【解决方案1】:

如果您想使用引号 "foo" 传递 url 参数,那么您还应该使用如下引号访问它们:params['"foo"']

但是,如果您想让params[:foo] 工作,那么只需传递它们而不带任何引号。 api/dashboard/price?foo=bar.

【讨论】:

  • 同意 Dmitry,但不要做第一个选项。只需通过api/dashboard/price?foo=bar。干净多了。如果您需要 bar 是多个单词,只需 URL 转义它。 stackoverflow.com/questions/6057972/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多