Questions tagged «ruby»

Ruby是由松本行弘(Matz)于1995年创建的一种多平台开放源代码,动态的,面向对象的解释性语言。[ruby]标记用于与Ruby语言有关的问题,包括其语法和库。Ruby on Rails问题应标记为[ruby-on-rails]。

4
#<Bundler :: RubygemsIntegration:0x00005633f09a9000>的未定义方法'plain_specs'(NoMethodError)
我已经完成了一个工作项目,当我尝试运行该项目时rails db:migrate,终端要求安装“ Bundler 2”,因此我可以这样做。 现在,当我尝试执行此操作时rails db:migrate,出现以下错误: /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:84:in `setup': undefined method `plain_specs' for #&lt;Bundler::RubygemsIntegration:0x00005633f09a9000&gt; (NoMethodError) from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:124:in `check' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:131:in `&lt;top (required)&gt;' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:168:in `require' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:168:in `rescue in require' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:178:in `require' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems_executable_plugin.rb:4:in `block in &lt;top (required)&gt;' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:50:in `block in run' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:49:in `each' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:49:in `run' from …

3
更新fastlane失败:Signet需要Ruby版本> = 2.4.0
我无法更新Fastlane。 当我执行时fastlane update_fastlane,出现以下错误。 ERROR: Error installing fastlane: signet requires Ruby version &gt;= 2.4.0. 当我执行时,ruby -v我得到ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18] 我卡在fastlane版本2.28.3中。我尝试重新安装fastlane,但仍然遇到相同的错误。 造成此问题的原因是什么?我该如何解决?
13 ruby  fastlane 

3
是否可以在rails中有多个数据库连接池来进行切换?
一点背景 多年来,我一直在使用Apartment gem来运行多租户应用程序。现在最近有需要将数据库扩展到单独的主机,数据库服务器根本无法跟上(读和写都变得太多了)-是的,我将硬件扩展到最大(专用)硬件,64核,raid 10中的12 Nvm-e驱动器,384Gb ram等)。 我正在考虑按每个租户执行此操作(1个租户= 1个数据库连接配置/池),因为这是一种“简单”且有效的方式,可以在number-of-tenants不进行应用程序代码更改的情况下获得多达两倍的容量。 现在,我正在Rails 4.2 atm上运行,不久将升级到5.2。我可以看到Rails 6增加了对每个模型的连接定义的支持,但这并不是我真正需要的,因为我为20个租户中的每一个都有一个完全镜像的数据库架构。通常,我会针对每个请求(在中间件中)或每个后台作业(sidekiq中间件)切换“数据库”,但是目前这对于公寓的gem来说是微不足道的,因为它只是search_path在Postgresql中进行设置,而实际上并没有改变实际的连接。当切换到每租户托管策略时,我将需要根据请求切换整个连接。 问题: 我知道我可以完成ActiveRecord::Base.establish_connection(config)每个请求/后台工作-但是,正如我也了解的那样,这将触发进行全新的数据库连接握手,并在Rails中产生一个新的数据库池-对吗?我猜想对我的应用程序的每个请求都会产生这种开销,这会降低性能。 因此,我想知道是否有人可以从一开始就预建立多个(总共20个)数据库连接/池(例如,在应用程序启动时),然后根据每个请求在这些池之间进行切换?这样他的数据库连接已经建立并准备使用。 所有这些仅仅是一个糟糕的主意,我应该寻找一种不同的方法吗?例如1个应用实例=与一个特定租户的特定连接。或者是其他东西。

5
即使一个图像的裁剪/比率略有不同,我如何检测到两个图像“相同”?
我有两个不同的图像: 在100px 或400px 和 宽度为100 像素或400像素 如您所见,从人类的角度来看,两者显然是“相同的”。现在,我想以编程方式检测它们是否相同。我一直在通过rmagick像这样的红宝石来使用图像魔术: img1 = Magick::Image.from_blob(File.read("image_1.jpeg")).first img2 = Magick::Image.from_blob(File.read("image_2.jpeg")).first if img1.difference(img2).first &lt; 4000.0 # I have found this to be a good threshold, but does not work for cropped images puts "they are the same!!!" end 虽然这对于具有相同比率/裁切的图像效果很好,但是当裁切略有不同并且调整为相同宽度时,这不是理想的选择。 有没有一种方法可以对不同裁切的图像进行处理?我对一种可以说类似的解决方案很感兴趣:一个图像包含在另一个图像中,并且覆盖了大约90%的位置。 PS。如果有帮助,我可以以更高的分辨率获得图像(例如,双倍)

5
类方法是否有alias_method?
考虑以下类别: class Foo def an_inst_method 'instance method' end def self.a_class_method 'class method' end alias_method :a_new_inst_method, :an_inst_method end 这没问题,您可以打电话Foo.new.a_new_inst_method。 我希望能够拥有类方法Foo.add_widget(*items)并为其添加别名,因此我可以执行以下操作: Foo.add_widget 'item1' Foo.add_widgets 'item2', 'item3' 因此,从本质上讲,它具有“ ruby​​风格”之类的东西1.minute,2.minutes因此我想给a 加上别名,Foo.add_widget从而调用Foo.add_widgets完全相同的方法。我知道我可以把它包起来,但是我觉得我应该能够以一种更清洁的方式做到这一点。 考虑一下我尝试这样的尝试: class Foo def an_inst_method 'instance method' end def self.a_class_method 'class method' end alias_method :a_new_inst_method, :an_inst_method alias_method :a_new_class_method, :a_class_method end 但是,出现以下错误: NameError (undefined …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.