问题标签 [ruby-2.4]
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-4 - Rails 包含 has_many,通过子弹 gem 避免 eger 加载 n+1
我的模型是这样的:
第二:
第三:
现在我的查询是:
它通过子弹宝石给出以下消息:
有没有更好的方法可以避免 n+1。提前致谢
devise - Mysql2::Error: 列 'encrypted_password' 不能为空
Rails 5,ruby 2.4.0 错误:rails while running rails test
我的测试:utilities_controller_test.rb
我的夹具:users.yml
html - ActionView::Template::Error: Can't resolve image into URL: undefined method `[]' for nil:NilClass
在运行我的测试用例时使用:Ruby 2.4.0p0 Rails 5.2.3:有和错误:
我的测试用例是这样的:
结尾
错误:
但是手动打开 ui 时图像会正确加载。你能建议什么是错的。在视图中有 image_tag 在第 43 行。
ruby-on-rails-5 - Selenium::WebDriver::Error::WebDriverError: 无法找到 chromedriver。请从以下地址下载服务器
使用 ruby 2.4.0p0 , Rails 5.2.3
为 Rails 应用程序运行系统测试用例时出错:
我的系统测试如下:
请提出可能的出路。
运行系统测试的命令:
ruby-on-rails - 在 Rails 中分叉独角兽进程时单例消失
我有一个运行 ruby 2.4.4 的 Rails 应用程序,使用 Unicorn 作为 Web 服务器,它使用单例在后台线程中从 Kafka 读取。这个想法是每个独角兽进程都有一个单例实例。所以 4 个进程,4 个单例。
after_fork
我在我的独角兽配置中启动了钩子内的卡夫卡消费。我可以成功等待历史消息的消费完成(通过立即进行撬动来验证)。
但是,当我到达服务流量的地步时,单例实例是 a) 一个不同的实例,并且 b) 为空 - 先前设置的 ivar 已消失。
我已经确认我在同一个进程和同一个线程中。
设置如下:
我确认我在同一个进程中,甚至在同一个线程中,因为我可以通过替换include Singleton
自定义实现和线程局部变量成功地将正确的对象传递给应用程序,如下所示:
在这个实现中,当我从我的应用程序提供流量时,BackgroundFooConsumer.instance
是在钩子中创建的正确实例after_fork
,并且每个独角兽进程都有一个独立的实例,通过检查对象 ID 来确认。
我不相信这是 GC,至少底层对象没有被清除,我已经通过在 after_fork 钩子中设置 Thread 局部变量来确认这一点,然后include Singleton
在我的消费者类中使用。我仍然得到空/新单例,但是如果我直接查询它,线程局部变量仍然存在。
我目前的假设是,这与写入时复制有关,通过设置线程局部变量,我以某种方式强制 ruby 仅为该进程创建一个单例并将其保存到该变量中。
所以我的问题是单例实例如何在单个线程中像这样消失?我怎样才能阻止它发生?如果可以的话,我宁愿不使用这些线程局部变量。
webpack - 未捕获的类型错误:$(...).modal 不是 rails 6 中的函数
在rails 6中出现此错误,在rails 5中,将应用程序更新到rails 6(包括webpack)后很容易解决此错误,每次我尝试关闭js.erb文件中的模型时都会出现此错误。
我的文件:pack/application.rb
文件包/src/application.scss
文件配置/webpack/environment.js
ruby - 如何从多次出现的哈希中删除嵌套值
我有一个哈希,也就是说,
这个哈希是通过另一个函数传递的。如何从 "within"=>["FID6", "S5"] 中删除具有模式 FID(在本例中为 FID6)的值,而不会很好地改变原始哈希值?这只是哈希的缩短版本,但在其他情况下哈希超长并且“内部”键值对出现多次。注意:这个程序使用的是 ruby 2.4
有人要求我澄清这个问题与我之前提出的问题有何不同,所以这是一个更清楚的说明,因为从那以后我已经做了更多的工作。这个特定的键值对 "within"=>["FID6", "S2"] 现在看起来嵌套很深(整个哈希大约有 2 页长,因此我没有复制和粘贴它)。我无法拆分“存储库”所在的哈希,因为它嵌套在其他键值中。我现在要问的是,有没有一种方法可以在键值内匹配它,无论它现在很深。谢谢大家的建议。
rspec-rails - Guard 不执行 capybara 测试的规范/功能
我的保护文件被编辑以执行在规范/功能中编写的测试用例,因此如果控制器或模型内部有任何更改,它将执行所有规范/功能测试:
添加了所需的gemfiles
我的文件如下:
但是在运行警卫时,它不会检测到任何书面测试用例并给出结果:
ruby - Ruby on rails,如何从日语单词中删除空格?
我正在尝试从日语单词中删除空格。
ruby - 我可以在 Ruby 3 中使用 Ruby 2.4 代码而不会出现任何错误吗?
我想知道是否可以在 ruby 3 中使用基于 ruby 2.4 的代码(如在程序、方法、语法和函数名称中)。我想慢慢迁移到 Ruby 3,但我想知道一切是否稳定。
我需要下载一些软件包以使其稳定吗?Ruby 3 是否向后兼容(我听说它们不如快速创新者那么多,比方说,与 Python 相比,python 向后兼容所有 3.x 版本,但不是那么大的创新者)?
我应该仔细阅读我编写的所有内容以使其兼容吗?
有点切题,但我是否有必要迁移到 Ruby 3?我认为 Ruby 2.4 现在已经有足够的特性和更新让我继续使用它,如果我不升级一个版本,我总是可以使用 Ruby 2.7。
谢谢!