标签: ruby-3

Rails 6.1、Ruby 3.0.0:测试错误,因为它们无法加载 rexml

我已经使用 Ruby 3.0.0 从头开始​​创建了一个新的 Rails 6.1 应用程序。

我已经运行db:create并生成了一个带有一些字符串列的单个模型,后跟rails db:migrate.

我跑了rails test但是得到了这个需要 rexml 错误:

/Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:34:in `require': cannot load such file -- rexml/document (LoadError)
  from /Users/froop/.rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `block in require'
  from /Users/froop/.rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:299:in `load_dependency'
  from /Users/froop/.rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `require'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/firefox.rb:22:in `<main>'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
  from /Users/froop/.rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `block in require'
  from /Users/froop/.rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:299:in `load_dependency'
  from /Users/froop/.rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `require'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/webdrivers-4.4.1/lib/webdrivers/geckodriver.rb:72:in `<main>'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
  from /Users/froop/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-3

46
推荐指数
3
解决办法
7628
查看次数

RVM,Ruby 3.0.0 在哪里?

我想使用 RVM 下载最新的 Ruby 版本(版本 3.0.0),但在运行时遇到以下错误rvm install 3.0.0

Unknown ruby interpreter version (do not know how to handle): 3.0.0
Run Code Online (Sandbox Code Playgroud)

我也试过3& 3.0,但给出了同样的错误。

根据这个页面,它应该可以通过 RVM 获得。我已经在使用 RVM 来管理我的 ruby​​ 版本,所以我不想使用rbenv......也不想从源代码安装。

如何3.0.0使用 RVM 安装Ruby 版本?

ruby rvm ruby-3

28
推荐指数
1
解决办法
8566
查看次数

MacOs (M1 Arm64) 无法加载 Nokogiri - 使用系统默认 Ruby

我在这里需要一些帮助。我正在设置一台新的 2020 年 Macbook Pro M1。

我已经完成了在 Mac 上安装 ruby​​/rails 的所有常规步骤,但是我无法完成rails new。在安装的以下部分后,我收到此错误:

E*****@Admins-MBP desktop % rails new testapp
      create  
      create  README.md
      create  Rakefile
      create  .ruby-version
      create  config.ru
      create  .gitignore
      create  .gitattributes
      create  Gemfile
         run  git init from "."
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call: …
Run Code Online (Sandbox Code Playgroud)

ruby macos ruby-on-rails nokogiri ruby-3

18
推荐指数
1
解决办法
1万
查看次数

升级到 ruby​​ 3 和 rails 6.1 后未定义的方法“file_fixture_path”

升级到 ruby​​ 3 和 rails 6.1 后,我的测试中断了

subject.avatar.attach(fixture_file_upload(Rails.root.join('spec', 'fixtures', 'images', 'avatar.jpg')))
Run Code Online (Sandbox Code Playgroud)

和:

NoMethodError:
        undefined method `file_fixture_path' for RSpec::Rails::FixtureFileUploadSupport::RailsFixtureFileWrapper:Class
        Did you mean?  fixture_path
Run Code Online (Sandbox Code Playgroud)

错误堆栈指向 webmock-3.11.0/lib/webmock/rspec.rb:37

任何建议如何调试它?

ruby rspec ruby-on-rails ruby-on-rails-6.1 ruby-3

15
推荐指数
2
解决办法
2283
查看次数

如何更改 ruby​​ 3.0 的 IRB 中的默认语法着色

我很高兴使用最新的 ruby​​ 3.0;以及可以访问更新的命令行解释器,该解释器可以进行语法突出显示和着色。

然而,颜色对我来说有点难看。我怎样才能改变它们?IRB 的命令行选项允许我使用 关闭着色--nocolorize,但我无法弄清楚配置文件在哪里,可以让我更改默认值(例如,使蓝色更亮。)

ruby syntax-highlighting irb ruby-3

13
推荐指数
4
解决办法
3420
查看次数

无法加载此类文件 -- webrick/httputils

我有一个项目正在尝试使用 ruby​​ 3(以前使用 2.7.2 运行),但无法完成。

使用 ruby​​ 版本更新我的 gemfile 并运行后bundle,我在尝试访问时收到此错误rails c

/home/rwehresmann/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': cannot load such file -- webrick/httputils (LoadError)
Run Code Online (Sandbox Code Playgroud)

我已经尝试添加 webrick gem 以查看会发生什么,结果是rails c卡住了。

这是我的 gemfile:

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '3.0.0'

gem 'rails', '~> 6.0.1'
gem 'pg', '>= 0.18', '< 2.0'
gem 'puma', ">= 4.3.3"

gem 'aws-sdk-s3', '~> 1'
gem 'http', '~> 4.3.0'
gem 'redis', '~> 4.1.3'
gem 'jwt', '~> 2.2.1'
gem 'pundit', '~> 2.1.0'
gem 'blueprinter', '~> 0.23.0' …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails bootsnap ruby-3

12
推荐指数
2
解决办法
2903
查看次数

Ruby 3.0.4 与 Postgres 14 抛出分段错误

我有

Ruby 3.0.4
Rails 6.1.7
pg 1.4.5
postgresql 14.6
Run Code Online (Sandbox Code Playgroud)

这是我的database.yml 文件

development:
adapter: postgresql
encoding: utf8
database: olio_development
username: postgres
password: password
pool: 5 
host: 127.0.0.1
port: 5432
gssencmode: disable
Run Code Online (Sandbox Code Playgroud)

当我运行 rake db:create 时,出现以下分段错误

/home/usr/.rvm/gems/ruby-3.0.4/gems/pg-1.4.5/lib/pg/connection.rb:626: [BUG] Segmentation fault at 0x00007fd79729a140
Run Code Online (Sandbox Code Playgroud)

ruby 3.0.4p208(2022-04-12 修订版 3fa771dded)[x86_64-linux]

-- Control frame information -----------------------------------------------
 c:0050 p:---- s:0275 e:000274 CFUNC  :connect_poll
c:0049 p:0543 s:0271 e:000270 METHOD /home/suganya/.rvm/gems/ruby-3.0.4/gems/pg-1.4.5/lib/pg/connection.rb:626
Run Code Online (Sandbox Code Playgroud)

连接失败。

我已经验证 postgres 正在运行并且位于主机 127.0.0.1 和帖子 5432 上。

请帮我解决这个分段错误?

postgresql ruby-on-rails ruby-on-rails-6.1 ruby-3

11
推荐指数
2
解决办法
3573
查看次数

更新到 Ruby 3.0 后出现 ArgumentError(参数数量错误(给定 2 个,预期 1))

当我尝试将网站更新到 Ruby 3.0.0 时,出现以下错误:

ArgumentError(参数数量错误(给定 2,预期 1))

 % rails console
Loading development environment (Rails 6.1.0)
irb(main):001:0> puts RUBY_VERSION
3.0.0
irb(main):002:0> puts IceCube::VERSION
0.16.3
irb(main):003:0> schedule = IceCube::Schedule.new
=> #<IceCube::Schedule:0x00007fccfe19cfa8 @start_time=2020-12-27 11:14:30 -0800, @all_recurrence_rules=[], @all_exception_rules=[]>
irb(main):004:0> puts schedule.to_ical
Traceback (most recent call last):
        1: from (irb):4:in `<main>'
ArgumentError (wrong number of arguments (given 2, expected 1))
Run Code Online (Sandbox Code Playgroud)

以下是与 Ruby 2.7.2 相同的命令

% rails console
Loading development environment (Rails 6.1.0)
irb(main):001:0> puts RUBY_VERSION
2.7.2
irb(main):002:0> puts IceCube::VERSION
0.16.3
irb(main):003:0> schedule = IceCube::Schedule.new
=> …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-3

7
推荐指数
1
解决办法
1万
查看次数

ruby 3 带有关键字参数的数组参数 splat

在 ruby​​ 3 之前,可以这样做

def test a, **o
  p a, o
end
t = [:ok, **{ok: 2}]
test *t
Run Code Online (Sandbox Code Playgroud)

它会正确分配

:ok 到 a 和 {ok: 2} 到 o

在 ruby​​ 3 中调用

你会得到

ArgumentError (wrong number of arguments (given 2, expected 1))
Run Code Online (Sandbox Code Playgroud)

是否可以解决将关键字参数保留在第二个位置的 splat 数组参数?

ruby ruby-3

6
推荐指数
1
解决办法
899
查看次数

`require':无法加载此类文件 -- rdoc (LoadError)

在尝试运行“irb”时,我遇到了以下错误:

<internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- rdoc (LoadError)
Run Code Online (Sandbox Code Playgroud)

from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb/input-method.rb:17:in `<top (required)>'
from /usr/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb/context.rb:14:in `require_relative'
from /usr/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb/context.rb:14:in `<top (required)>'
from /usr/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb.rb:16:in `require_relative'
from /usr/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb.rb:16:in `<top (required)>'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/lib/ruby/gems/3.0.0/gems/irb-1.4.1/exe/irb:9:in `<top (required)>'
from /usr/bin/irb:25:in `load'
from /usr/bin/irb:25:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我尝试将ruby版本从3.0.3降级到2.7,但没有成功;有同样的错误。

ruby rubygems ruby-3

6
推荐指数
1
解决办法
3324
查看次数