问题标签 [ruby-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 猴子修补不适用于 TimeWithZone 对象
我里面有这个 Time 类扩展lib/core_extensions/time/formatter.rb
我不知道为什么,它没有达到我的预期,
所以我尝试使用它来调试它byebug
,我发现它utc
并没有将时区更改为 UTC 格式,所以它保持 +07:00
格式不变,但是当我尝试使用它时,Time.zone.now.to_formatted_tz
它又增加了 7 个小时。但它不应该那样做,好像我试过这样做
为什么会这样?以及如何使它像我预期的那样工作?
谢谢
红宝石版本:3.0.0
RoR 版本:6.1.1
编辑:
刚刚发现当我尝试在方法内部通过调试并执行时self
它表明了这一点
所以+07:00
格式更改为UTC
但不减去 7 小时,如何解决这个问题?
ruby-on-rails - Rails:使用强参数作为关键字参数
假设我有一个User
带有类方法的模型create_with_info
。目前,如果我想使用关键字参数将参数密码输入方法中,它将是这样的。
我不确定这是在控制器中使用关键字参数的正确方法还是有更好的处理方法?使用to_h.symbolize_keys
对我来说很烦人。
ruby - 如何在 Ruby 中表达这种数据类型?
我有这个描述类型的 preudo 代码
我在 Ruby 中是这样表达的:
有没有更好、更惯用、更简单的方法?
我不考虑使用第三方 gems 和库。
net-http - Ruby 3 net-http:如何编码查询参数以匹配 Open Page Rank 示例中的参数?
我正在尝试使用net/http
向 Open Page Rank 发送请求。
api docs以这个 PHP 为例:
我在 Ruby 中的尝试如下所示:
尝试红宝石时,我得到一个400
. 正文告诉我没有提供域。
查看 Ruby 和 PHP 中的请求 uri,我可以看到查询字符串不同。
使用URI.encode_www_form(params)
:
使用http_build_query()
:
我也试过了URI.encode_www_form_compoent(params)
。生成的 URL 再次不同:
我仍然得到同样的回应。
我假设服务器期望查询字符串具有特定的编码。如何以 Open Page Rank 接受的方式发送带有查询参数的请求/生成 URL?
ruby-on-rails - ruby 升级到 3.0.0 后 Searchkick 搜索方法参数错误
将 ruby 版本从 2.7.2 更新到 3.0.0,默认 Searchkick 搜索行为停止工作。
错误跟踪:
这是在 ruby 2.7.2 上运行良好的简单搜索方法:
这是我的 Gemfile.lock:
有没有办法解决这个问题或者它是 gem 源中的错误?
ruby - Ruby 3 的“机架测试”有替代方案吗?
我们正在使用rack-test
我们的 Cucumber 规格。我们一直在尝试迁移到 Ruby 3 一段时间,当前的问题是 Cucumber 测试由于rack-test
在其内部方法中同时使用关键字/位置参数而崩溃。
我准备自己修补它,但是看到 repo 上的活动很少(包括开放数周/数月的 PR),我担心我会做这项工作并且没有人可以修补它。
我看到的唯一选择是:
- 做这项工作并祈祷会有人审查/合并更改
- 从现在开始在本地打补丁并在本地使用打补丁的版本(恶心)
- 寻找替代解决方案
rack-test
最后一个解决方案似乎是最好的 IMO。那么,有没有其他选择?
ruby - 在 gem 或 lib 中,我应该在哪里创建与 gem 密切相关的子项目?
假设,我想为我的 gem/库添加一个代码自动生成器。代码生成器不会是一个单独的执行 cli 文件,但它会包含源代码和 cli 文件,我也将与主要 gem 一起处理它。此外,它将以不同的语言编写。我可以将它移到不同的存储库中,但现在我选择使用单个存储库。按照惯例,我应该在主存储库的哪个子目录中创建该子项目?opt、var、extra、工具……?
ruby - 更改 ruby 版本后出现frozenobject错误
我在 ruby 2.7.2 中有一个代码,它工作正常。但是在将 ruby 版本更改为 3.0.0 后,它在第 275 行给出了无法修改 FrozenObject 错误。因为我检查了 $? 在 ruby 3.0.0 中是 Frozen Object,但在 ruby 2.7.2 中不是 Frozen,所以我该怎么办?有没有其他选择。
在 114 分 1 秒内完成(文件加载时间为 1.81 秒) 1 个示例,1 个失败
ruby-on-rails - ActiveRecord 对象 ruby 3.0 上的 to_json
我正在使用 rails 6.0.3.6 和 ruby 3.0.0,
当我打电话{'user' : User.first }.to_json
时,我得到"{\"user\":\"#<User:0x00007fa0a8dae3c8>\"}"
与[User.first, User.last].to_json
如果我切换回 ruby 2.7.2,我会得到正确的结果,即<User:0x00007fa0a8dae3c8>
替换为它的所有属性。
知道我缺少什么吗?
ruby-on-rails-6 - 启动 rails 服务器时未定义的方法数量(rails 6.1 和 ruby 3.0.0)
尝试将现有的 rails 应用程序从 ruby 2.7.2 升级到 ruby 3.0。
尝试使用 启动服务器时出错rails s
。以下是错误的完整日志:
用户.rb
角色.rb
客户端.rb
如果我注释掉 Client.rb 中的 resourcecify 行和 User.rb 中的两个 rolify 行,我就能够启动服务器。使用 ruby 2.7.2 时,服务器也运行良好。