- Read Tutorial
- Watch Guide Video
Now that you know how to print values to the console, the next logical step is to know how to get input from users. In this guide we'll walk through how to use the built in gets and chomp methods in Ruby.
In a real world application you'll most likely use web forms or some tool like that to get input. However by using console tools you'll be able to mimic what a user types into a program.
Code Implementation
We're start by asking the question of What is your name?
and print that out to the console.
puts "What is your name?"
name = gets
This code will print the first line to ask the question. In the second line, we are creating a variable called name
to hold the value given by the user. The `gets' method prompts the user to enter a value. So, when you execute this code, this is what you should see.
If you may notice, we have a small problem with gets
. It returns the value you enter along with the end of line character: \n
, and this is not something you want to handle in your logic. For example, let's say you want to validate if the user is entering the right password. The code would look like this:
puts "Please enter your password:" password = gets if password == "asdfasdf" true else false end
Now, if you run this code and you enter the password as asdfasdf
, it will return the value false
because the value that reaches the application is asdfasdf\n
and this is not the same as your password.
To fix this issue we can leverage the chomp
method.
password = gets.chomp
As the name implies, the word chomp gets rid of the \n
character by chomping it off.