Continuing in Rails Console

Continuing in Rails Console Rubyonrails-talk,

My environment is:

Ubuntu 16.04

Rails 5.2.0

Ruby 2.3.1p112

From an Ubuntu command prompt I write

rails c

and I get

Loading development environment (Rails 5.2.0)

irb(main):001:0> c

NameError: undefined local variable or method `c’ for main:Object

Did you mean? cb

    from (irb):1

irb(main):002:0> continue

NameError: undefined local variable or method `continue’ for main:Object

Did you mean? context

    from (irb):2

irb(main):003:0> 2+3

=> 5

irb(main):004:0>

How does one continue execution?

What commands are available from the irb command prompt?

Note: The app works from webrick and I can debug using byebug

My Gemfile follows


source ‘https://rubygems.org

git_source(:github) { |repo| “https://github.com/#{repo}.git” }

ruby ‘2.3.1’

Bundle edge Rails instead: gem ‘rails’, github: ‘rails/rails’

gem ‘rails’, ‘~> 5.2.0’

Use sqlite3 as the database for Active Record

gem ‘sqlite3’

Use Puma as the app server

gem ‘puma’, ‘~> 3.11’

Use SCSS for stylesheets

gem ‘sass-rails’, ‘~> 5.0’

Use Uglifier as compressor for JavaScript assets

gem ‘uglifier’, ‘>= 1.3.0’

See GitHub - rails/execjs: Run JavaScript code from Ruby for more supported runtimes

gem ‘mini_racer’, platforms: :ruby

Use CoffeeScript for .coffee assets and views

gem ‘coffee-rails’, ‘~> 4.2’

Turbolinks makes navigating your web application faster. Read more: GitHub - turbolinks/turbolinks: Turbolinks makes navigating your web application faster

gem ‘turbolinks’, ‘~> 5’

Build JSON APIs with ease. Read more: GitHub - rails/jbuilder: Jbuilder: generate JSON objects with a Builder-style DSL

gem ‘jbuilder’, ‘~> 2.5’

Use Redis adapter to run Action Cable in production

gem ‘redis’, ‘~> 4.0’

Use ActiveModel has_secure_password

gem ‘bcrypt’, ‘~> 3.1.7’

Use ActiveStorage variant

gem ‘mini_magick’, ‘~> 4.8’

Use Capistrano for deployment

gem ‘capistrano-rails’, group: :development

Reduces boot times through caching; required in config/boot.rb

gem ‘bootsnap’, ‘>= 1.1.0’, require: false

group :development, :test do

Call ‘byebug’ anywhere in the code to stop execution and get a debugger console

gem ‘byebug’, platforms: [:mri, :mingw, :x64_mingw]

end

group :development do

Access an interactive console on exception pages or by calling ‘console’ anywhere in the code.

gem ‘web-console’, ‘>= 3.3.0’

gem ‘listen’, ‘>= 3.0.5’, ‘< 3.2’

Spring speeds up development by keeping your application running in the background. Read more: GitHub - rails/spring: Rails application preloader

gem ‘spring’

gem ‘spring-watcher-listen’, ‘~> 2.0.0’

end

group :test do

Adds support for Capybara system testing and selenium driver

gem ‘capybara’, ‘>= 2.15’, ‘< 4.0’

gem ‘selenium-webdriver’

Easy installation and use of chromedriver to run system tests with Chrome

gem ‘chromedriver-helper’

end

Windows does not include zoneinfo files, so bundle the tzinfo-data gem

gem ‘tzinfo-data’, platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Ralph Shnelvar

From an Ubuntu command prompt I write rails c

and I get

Loading development environment (Rails 5.2.0) irb(main):001:0>

irb(main):003:0> 2+3 => 5

How does one continue execution?

?? "irb" stands for Interactive RuBy -- like any REPL it's waiting for YOU to enter something for it to do, like add 2 + 3 above.

What commands are available from the irb command prompt?

Ruby/Rails methods.

Do you have an ActiveRecord class 'Thing'? Then you can do e.g. `Thing.where(color: 'red')` and so on.

Re: [Rails] Continuing in Rails Console Hassan, I thank you for your answer. I entered both “c” and “continue” at the irb prompt … and got the two NameError’s. This time I’ll make my inputs red. Loading development environment (Rails 5.2.0) irb(main):001:0> c NameError: undefined local variable or method c' for main:Object Did you mean? cb from (irb):1 irb(main):002:0> continue NameError: undefined local variable or method continue’ for main:Object Did you mean? context from (irb):2 irb(main):003:0> 2+3 => 5 irb(main):004:0> I am still at a loss how to continue execution at the irb prompt. Ralph Monday, July 9, 2018, 9:04:15 AM, you wrote:

From an Ubuntu command prompt I write rails c and I get Loading development environment (Rails 5.2.0) irb(main):001:0> irb(main):003:0> 2+3 => 5 How does one continue execution? ?? “irb” stands for Interactive RuBy – like any REPL it’s waiting for YOU to enter something for it to do, like add 2 + 3 above. What commands are available from the irb command prompt? Ruby/Rails methods. Do you have an ActiveRecord class ‘Thing’? Then you can do e.g. Thing.where(color: 'red') and so on. – Hassan Schroeder ------------------------** hassan.schroeder@gmail.com **HS> twitter: @hassan

If you tell us what you mean by continue execution then someone may be able to help. What do you expect to happen when you tell it to continue execution? And don't just say you expect it to continue. No-one knows what you mean.

Colin

REPL stands for "read–eval–print loop" -- irb is waiting to *read* some input to *eval* and *print*.

Using the word "continue" here is meaningless.

Maybe describe what you're hoping to achieve using the console?

Re: [Rails] Continuing in Rails Console Colin and Hassan,

When I start rails with webrick and have a byebug statement in a controller or view, things drop into the byebug debugger. A “c” will continue execution. I expect/expected the rails console to drop into irb so it stops execution before Rails loads so that one can attempt to debug initialization.

Ralph

Monday, July 9, 2018, 10:02:19 AM, you wrote:

From your original message it sounds like you were starting your own instance of the console using ‘rails c’ from the terminal; it doesn’t sound to me that this is how you interact with byebug. According to http://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-byebug-gem you should be put into a console by byebug itself.

When you start `rails console` and get the IRB prompt, Rails is basically loaded at that point, so no.

And if Rails is broken, you probably won't get to the prompt anyway :slight_smile: