#ruby-on-rails #ruby #rails-console
#ruby-on-rails #ruby #рельсы-консоль
Вопрос:
Я только недавно обновил Ruby (2.3.1) и Rails (5.0.0.1). Теперь, когда я получаю ошибку (любого типа) на консоли rails, за ней следует около 15-20 строк, начинающихся с «from/Users ……/.rvm/..etc». Есть идеи, почему я получаю так много строк этой ошибки и нормально ли это? Как я мог это исправить? В противном случае все остальное, касающееся Ruby / Rails, работает для меня отлично, так что, возможно, это просто обычный вывод. Тем не менее, это немного раздражает.
Похоже, что общим для каждого пути является ‘.rvm’. Например:
2.3.1 :031 > test
ArgumentError: wrong number of arguments (given 0, expected 2..3)
from (irb):31:in `test'
from (irb):31
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/railties-5.0.0.1/lib/rails/commands/console.rb:65:in `start'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/railties-5.0.0.1/lib/rails/commands/console_helper.rb:9:in `start'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:78:in `console'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in `<top (required)>'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
from /Users/AlfonsoGiron/workspace/sample_app/bin/rails:9:in `<top (required)>'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `block in load'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1@global/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/commands/rails.rb:6:in `call'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/command_wrapper.rb:38:in `call'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:191:in `block in serve'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:161:in `fork'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:161:in `serve'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:125:in `loop'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:125:in `run'
from /Users/AlfonsoGiron/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in `<top (required)>'
from /Users/AlfonsoGiron/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/AlfonsoGiron/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'
2.3.1 :032 >
Спасибо за любую помощь.
Ответ №1:
Консоль Rails использует IRB под прикрытием, поэтому вам придется отредактировать файл конфигурации IRB, который обычно находится по адресу ~/irbrc
, и изменить BACK_TRACE_LIMIT
значение:
IRB.conf[:BACK_TRACE_LIMIT]=0
Во время сеанса консоли Rails вы также можете запустить:
conf.back_trace_limit = 0
Для IRB (и, соответственно, Rails console) существует еще много вариантов конфигурации. Проверьте их на ruby-doc.org .