问题标签 [ruby-2.6]
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 - 在 Ubuntu 18.04 上安装 Ruby 2.6 - 捆绑程序路径错误
我使用以下命令在 Ubuntu 18.04 上安装了 Ruby 2.6.6:
ruby -v
确认已安装 2.6.6。
但是当我跑步时,gem install bundler
我得到了错误/usr/bin/gem: no such file or directory
在安装 Ruby 2.6.6 之前,我使用 删除了 2.5 版sudo apt-get purge ruby
,所以我想知道路径是否需要重新配置。我是Ruby的新手,所以我有点迷茫。请问有什么指导吗?
which ruby
返回 /usr/local/bin/ruby
我在/usr/local/bin/gem
how do I re-configure the gem path reference from /usr/bin/gem
to中找到了 gem 目录/usr/local/bin/gem
?
ruby - 代码在 Ruby 2.7 中运行良好,但在 Ruby 2.6.3 中不行
我在 Ruby 2.7 中编写了一个具有装饰器功能的代码。它在该版本中运行良好,但相同的代码在 Ruby 2.6 中无法正常运行。如果我删除对装饰器的调用,即,wrapper_function
代码在 Ruby 2.6 中执行,但这不是我想要的功能。那么我的错误是什么,我该如何纠正呢?
已编辑
#test.rb
以上是显示问题的完整文件: 运行它:ruby test.rb
如果版本是2.7.1
,则代码执行没有错误。如果是 2.6.3,那么我会收到此错误:
test.rb:54:in add_member: wrong number of arguments (given 5, expected 4) (ArgumentError)
在行wrapper_function
中23
,25
如果我删除**kwargs
,则执行程序并在 version 中给出所需的结果2.6.3
。那么为什么会这样呢?
ruby - Python 的 iter()/next() 的 Ruby 等价物是什么?
在python中,我可以从任何可迭代的中获取迭代器iter()
;然后我可以打电话next(my_iter)
来获取下一个元素。
ruby/rails 中是否有任何等价物?
ruby - Rails 会覆盖 ruby 的默认记录器吗?
我正在编写一个多记录器实现,以使我的应用程序能够记录到多个后端。实现看起来像:
基本上我只是将调用转发给MultiLogger#add
实例化期间关联的所有记录器。问题是我需要将该记录器设置为 Rails 的默认记录器,但我不能这样做。
我正在添加config.logger = MultiLogger.new([Logger1.new, Logger2.new])
到我的application.rb
文件中,但是当我调用 时logger.info
,我收到了与add
方法的数量相关的错误。
最奇怪的是,我的自定义 add 从未被调用,并且该错误是从 引发的ActiveSupport::LogerThreadSafeLevel#add
,如下所示.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.0.3.2/lib/active_support/logger_thread_safe_level.rb:51:in 'add'
:
我想我遗漏了关于 Rails 日志记录机制内部工作的一些重要内容……但是什么?是ActiveSupport
覆盖我的add
方法吗?我能做些什么来避免这种情况?
ruby - 如何在ruby中用重音字符分割字符串
目前我得到:
我想得到这个结果
ruby-on-rails - Papertrail:日志中的 whodunnit 值和 object_changes 为零的记录
我已将 papertrail 设置为仅记录包含 whodunnit 值的更改/当管理员通过在我的模型中使用以下条件进行更改时:
但是,我注意到仍然有相当数量的记录以空的 whodunnit 值存储。从查看记录来看,这些似乎主要是“更新”操作,出于某种原因,所有操作都具有空对象更改。我不确定为什么这个值是空的,或者考虑到上述情况,它会如何被保存。
我在我的应用程序控制器中使用以下命令从 Warden 那里获取 whodunnit 值:
有没有人遇到过类似的行为?
ruby - 未声明的实例变量默认为零?
由于我的一些草率编码,我注意到未声明的实例变量似乎评估 nil 而未声明的局部变量没有。实例变量的这个默认 nill 值是我可以利用的预期行为(例如使用条件检查变量是否已设置为真)还是这只是一个应该不理会的怪癖?
ruby-on-rails - 覆盖 const_missing 在非开发环境中返回 `NameError uninitialized constant`
我的 Rails 应用程序中有以下代码
当它在开发中运行时,它可以工作
当我在生产中运行它时,我得到了
如果我只是复制TestModule::TestClass
到控制台它可以工作。它似乎只是不适用于该const_missing
方法。
我怀疑它可能与自动加载有关,因为我在 development.rb 中设置config.cache_classes
和config.eager_load
true 时也发生了。我似乎无法弄清楚如何让它在缓存环境中工作。
ruby-on-rails - 错误:安装 racc 时出错:错误:无法构建 gem 原生扩展
- Ubuntu 20.04.2 LTS
- 安装 Rails 6.1.3.1
- 红宝石:2.6.5
安装导轨:
gem install rails -v 6.1.3.1 --no-doc
安装 racc-1.5.2 失败
尝试手动安装 racc-1.5.2:
gem install racc -v '1.5.2' --source 'https://rubygems.org/' --no-doc
产生相同的错误。
以下是错误的“已编辑”输出:
ruby-on-rails-5 - 启动WEBrick时使用什么应用服务器?
当使用以下命令启动 WEBrick 时,我知道我使用 WEBrick 作为 Web 服务器。
rails server webrick
但是不知道使用WEBrick的时候用的是什么应用服务器。
Rails 应用程序中是否有任何文件来设置我们使用的应用程序服务器?