Instance variables

As the name suggests, instance variables are available to a particular instance. There is a specific syntax to set instance variables, you need to use the @ sign to define a variable. For example, keeping in tune with our baseball theme, we can set the batting average like this:

@batting_average = 300 

I'm going to show you how instance variables are used in a real-life Ruby on Rails application:

In the preceding code, you can see that there is an instance variable called @jobs. This variable is created in the index method and is not available to other methods in the file. Now, you may wonder why we wouldn't just make this a local variable since it's not available to other methods in the class.

The reason for this is because Rails is structured in such a way that the view and controller files are wired to communicate with each other, so this instance variable @jobs can be accessed in the associated view file. This is how the view file looks:

Now, @jobs is available for the view page only because we made it an instance variable in the controller file.

Don't worry if this sounds foreign to you. This is a more advanced development topic and I'm introducing it here so it will look familiar to you when you go through Rails applications. For now, I just want you to understand the scope of an instance variable and how it is different from local variables.