如何从 Rails 中的 URL 获取查询字符串

2023-12-28

有没有办法在 Rails 中获取传递的 URL 字符串中的查询字符串?

我想传递一个 URL 字符串:

http://www.foo.com?id=4&empid=6

我怎样才能得到id and empid?


如果字符串中有 URL,则使用 URI 和 CGI​​ 将其分开:

require 'cgi'

url    = 'http://www.example.com?id=4&empid=6'
uri    = URI.parse(url)
params = CGI.parse(uri.query)
# params is now {"id"=>["4"], "empid"=>["6"]}

id     = params['id'].first
# id is now "4"

请使用这些东西的标准库,不要尝试自己用正则表达式来做。

另请参阅 Quv 的评论Rack::Utils.parse_query below.

参考:

  • CGI.parse https://ruby-doc.org/stdlib/libdoc/cgi/rdoc/CGI.html#method-c-parse
  • URI.parse https://ruby-doc.org/stdlib/libdoc/uri/rdoc/URI.html#method-c-parse

Update: 这些天我可能会使用Addressable::Uri https://github.com/sporkmonger/addressable代替URI来自标准库:

require "addressable/uri"

url = Addressable::URI.parse('http://www.example.com?id=4&empid=6')
url.query_values                  # {"id"=>"4", "empid"=>"6"}
id    = url.query_values['id']    # "4"
empid = url.query_values['empid'] # "6"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Rails 中的 URL 获取查询字符串 的相关文章

  • 检查 Ruby 上的浏览​​器控制台输出

    如何检查浏览器控制台是否有错误 例如 我用 Selenium 启动了浏览器 firefox 的 chrome 并且用 Selenium WebDriver 做了一些操作 之后我想知道网络控制台中是否有任何错误 我尝试接受控制台错误 例如 d
  • Unicorn + Rails + 大型上传

    我试图在使用 Rails 在 Heroku 上运行 Unicorn 时允许进行大型上传 但我意识到任何大型上传可能需要比 Unicorn 工作线程的超时时间更长的时间 这意味着 我见过这种情况发生 Unicorn 主进程将杀死上传大文件的工
  • “捆绑安装”是否会在我的计算机上永久安装所有必需的 gem?

    我是 Rails 新手 正在学习捆绑器 我明白那个bundle install安装 gemfile 中指定的所有 gem 但将它们安装到哪里 是否将它们永久安装在我的计算机上 以便将来的任何项目都可以使用它们 如果是这样 这是否意味着我的计
  • 如何使用多个 { 'not find' } 来干燥方法?

    我正在尝试优雅地处理以下错误的 JSON 其中Hash fetch似乎不是一个选择 使用 Hash fetch 优雅地处理错误的 JSON https stackoverflow com questions 25193627 handle
  • pg gem Trace/BPT 陷阱:MAC OS X lion 上出现 5 错误

    我最近将我的雪豹升级为狮子 在我的一个应用程序中我得到了 gt Booting WEBrick gt Rails 3 0 4 application starting in development on http 0 0 0 0 4000
  • Rails 3:f.select - options_for_select

    我的 Ruby on Rails 应用程序上有一个带有下拉菜单的表单 这是我当前的选择选项代码 根据我的理解 当有人打开页面时 这应该将 选择一个 作为默认选项 但如果他们不选择其他选项之一 那么当他们点击提交时会显示错误 在 Safari
  • 将元数据添加到 PDF

    我需要将元数据添加到我正在创建的 PDF 中prawn http rubygems org gems prawn 该元数据稍后可能会被提取 pdf阅读器 http rubygems org gems pdf reader 该元数据将包含内部
  • database.yml 的所有可能键是什么

    我刚刚发现reconnect true配置选项可以在database yml文件 还有哪些其他可能的配置选项 是否有所有选项的完整参考 已知的关键示例 default default adapter mysql2 encoding utf8
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • render_views 在 rspec 中做什么?

    我对 rspec 很陌生 对 Rails 也很陌生 在为控制器编写测试用例时 我注意到render views经常使用 这是做什么的 如果我不调用它会发生什么 它呈现控制器规范中的视图 如果不放置 render views 视图将不会渲染
  • ActiveSupport::JSON 解码哈希丢失符号

    我正在尝试序列化和反序列化哈希 当散列被解除序列化时 密钥被解除符号化 例如不是更多 一 而是 一 从 Rails 控制台 gt gt h one gt 1 two gt two one gt 1 two gt two gt gt j Ac
  • ruby 中 for 循环的语法

    如何在 Ruby 中执行这种类型的 for 循环 for int i 0 i
  • 在 ruby​​ 中卸载动态声明的类

    我有一个使用 theClass class eval 和 Object const set className theClass 定义的类 有什么办法可以删除这个类的定义吗 在测试过程中 我需要加载同一类的不同版本 Object send
  • Rails 设计 edit_user_password_path

    我无法路由到项目上的 edit user password path 它只是路由到家 有人可以帮忙吗 这个问题的答案很能说明问题 显示设备编辑密码屏幕 https stackoverflow com questions 7014966 sh
  • 为什么 Ruby 没有内置线程池?

    我有一个程序 它一次创建 10000 个线程 并同时运行 8 个线程 但是Ruby没有像Java那样内置ThreadPool 有充分的理由吗 可能是因为使用标准库 Queue 类很容易推出您自己的 q Queue new 3 times T
  • 如何使用 Nokogiri 漂亮地打印 HTML?

    我用 Ruby 编写了一个网络爬虫 并且正在使用Nokogiri HTML来解析页面 我需要打印该页面 在 IRB 中闲逛时 我注意到一个pretty print方法 然而它需要一个参数 我不知道它想要什么 我的爬虫正在缓存网页的 HTML
  • 在 rspec 中打印响应

    我有一个测试无法开始工作 所以我想通过打印响应来调试我的规范 我尝试过使用print response body在我的规范中 但 test log 或控制台中都没有输出 我可能错过了一些东西 我应该尝试什么 Thanks 您可以使用以下方式
  • RSpec 与 Shoulda?

    我是单元测试场景的新手 我现在只使用单元测试大约两个月了 当我在 Ruby 中进行单元测试时 我目前遵循 TDD 风格并使用 Test Unit TestCase 我还阅读了 RSpec 以及它如何遵循 BDD 方法 我还读过关于 Shou
  • 将 Rails 应用程序从 3.2.6 升级到 3.2.8

    我有一个使用 Rails 创建的 Rails 应用程序3 2 6 现在3 2 8已经发布了 这就是我更新应用程序所需要做的一切吗 Edit Gemfile 改变线路gem rails 3 2 6 to gem rails 3 2 8 Run
  • Haml:如何在 HAML 中设置元素的内联样式

    这是我的代码 div class some div 它只解析style position absolute 并且不解析其他样式 我怎样才能实现这个目标 如果您发布了您正在使用的 HAML 那会很方便 但它是这样完成的 div some st

随机推荐

  • 如何使异步 Dart 调用同步?

    我正在为一家德国公司评估 Dart 将各种 Java 程序移植到 Dart 中 并对结果进行比较和分析 在浏览器中 Dart 轻而易举地获胜 对于服务器软件性能似乎是一个严重的问题 参见我的这个问题 https stackoverflow
  • 如何根据支持 bean 条件有条件地显示 p:dialog

    有什么方法 或正确的方法 有条件的根据支持 bean 条件在 primefaces 上显示对话框 代码如下所示
  • 如何将 1400-1500 转换为下午 2 点至下午 3 点?

    我正在从服务接收表示时隙的数据作为字符串 格式如下 1500 1600 这意味着下午 3 点到 4 点 我将列出这些内容 例如 1200 1300 1300 1400 1400 1500 我必须在用户界面中将其表示为 中午 12 点至下午
  • `format()` 和 `str()` 有什么区别?

    gt gt gt format sys stdout lt io TextIOWrapper name
  • '=' sp_executesql 附近的语法不正确

    我需要delete all rows在一些table where值是空字符串 我有多个名称相似的表 我尝试执行字符串中的sql语句 DECLARE sql AS NVARCHAR MAX DECLARE emptyValue AS NVAR
  • 如何使ajax请求异步?

    我想让一些ajax请求异步 比如两个Ajax 第一个Ajax不需要完成 第二个请求就可以发生 ajax url urlone async true complete function console log 1 type post data
  • 创建静态库并使用 premake 链接到它

    我目前正在尝试学习如何使用 premake 4 以便将其应用到 OpenGLsdk http www opengl org sdk 我目前正在尝试制作一个 Visual Studio 2010 解决方案 该解决方案构建 2 个项目 一个是静
  • 如何触发 Tab 键事件?

    How do we fire a tab key pressed event deliberately in Java I also want to know how to fire a Shift tab key pressed even
  • 使用 Angular 7 上传文件时,表单数据并不总是在 Chrome 中发送

    当我的 Angular 7 应用程序使用 Angular file 上传文件时 表单数据并不总是通过 Chrome macOS 发送 我使用 Firefox 或 Safari 没有任何问题 至少上次发生这种情况时 刷新 Chrome F5
  • java中的try/catch与null检查

    有时我面临必须编写一段这样的代码 通常它有更多嵌套的 if 和更复杂的结构 但对于示例来说就足够了 public void printIt Object1 a if a null SubObject b a getB if b null S
  • 视频在回溯时卡住 (C++) (QT) (libvlc)

    我正在使用 libvlc 使用 QT 4 在我的 GUI 应用程序上播放视频 当我向前搜索视频时 它工作正常 但是当我向后搜索视频时 它会卡住 我的意思是帧不会改变 而我的回调函数是 videopostrender没有接到任何电话 void
  • 如何混合(合并)视频和音频,以便音频在输出视频中循环,以防持续时间太短?

    背景 我需要将视频文件和音频文件合并为一个视频文件 以便 输出视频文件的持续时间与输入视频文件的持续时间相同 输出文件中的音频将仅是输入音频文件的音频 如果太短 则会循环到最后 如果需要可以在最后停止 这意味着一旦音频播放完毕而视频尚未播放
  • PHP cli 命令行 safe_mode 限制

    我正在使用 Kohana 框架 3 0 9 它生成每日日志 如果日志文件是在 CRON 运行脚本的前一天制作的 我想邮寄日志文件 但经过几天的尝试 我无法弄清楚如何在 PHP CLI 模式中推迟 safe mode 当我在网络上运行脚本时
  • Android任务管理器源码

    我想知道是否有任何开源 Android 任务管理器 流程管理器 流程细节器 项目可供我查看 我正在为我的大学项目开发 一个应用程序 它将帮助我了解寻找一个好的任务管理器 有谁知道一些开源项目 我可以在其中阅读或查看源代码 我不需要下载源 谢
  • Rails,选择助手,添加样式

    我正在尝试做这样的事情 select model attribute style gt some style Add style to the select helper在 Rails 中 但它不起作用 来自文档 http api ruby
  • 有条件申请课程的最佳方式是什么?

    假设您有一个在 a 中呈现的数组ul与li对于每个元素和控制器上的一个属性 称为selectedIndex 将课程添加到的最佳方式是什么li与索引selectedIndex在 AngularJS 中 我目前正在 手工 复制li代码并将该类添
  • 我如何像 Cocos2D 一样通过 SpriteKit 倾斜/剪切精灵?

    在Cocos2D x中 CCNode类提供了 skewX 和 skewY 来让我对精灵进行一些扭曲 但是 我在SpriteKit的SKNode中找不到类似的映射 我的游戏使用Flash移植骨骼动画 其中精灵的定位 缩放 旋转和剪切的配置将被
  • WebSocket 服务器不支持 SSL

    我有一个使用网络套接字的工作聊天应用程序 我想更进一步 在我的连接上启用加密 但是当我用 https 服务器切换 http 服务器时 我的连接开始失败 我已经生成了一个在我的所有网站上使用的自签名证书 在同一 TLD 下 这意味着它是通配符
  • 二元运算符“||”的操作数类型错误- 爪哇

    我在一个项目上遇到了麻烦 而且我没有足够的词汇来搜索我遇到的问题 我认为这与Java有关字符的语法有关 除了下面的代码之外 输入被视为上面的字符串并解析为字符 switch accountType case c case C Determi
  • 如何从 Rails 中的 URL 获取查询字符串

    有没有办法在 Rails 中获取传递的 URL 字符串中的查询字符串 我想传递一个 URL 字符串 http www foo com id 4 empid 6 我怎样才能得到id and empid 如果字符串中有 URL 则使用 URI