This example assumes Ruby and Ruby on Rails have already been installed properly. If not, you can find how to do it here.
Open up a command line or terminal. To generate a new rails application, use rails new command followed by the name of your application:
$ rails new my_app
If you want to create your Rails application with a specific Rails version then you can specify it at the time of generating the application. To do that, use rails _version_ new followed by the application name:
$ rails _4.2.0_ new my_app
This will create a Rails application called MyApp in a my_app directory and install the gem dependencies that are already mentioned in Gemfile using bundle install.
To switch to your newly created app's directory, use the cd command, which stands for change directory.
$ cd my_app
The my_app directory has a number of auto-generated files and folders that make up the structure of a Rails application. Following is a list of files and folders that are created by default:
| File/Folder | Purpose |
|---|---|
| app/ | Contains the controllers, models, views, helpers, mailers and assets for your application. |
| bin/ | Contains the rails script that starts your app and can contain other scripts you use to setup, update, deploy or run your application. |
| config/ | Configure your application's routes, database, and more. |
| config.ru | Rack configuration for Rack based servers used to start the application. |
| db/ | Contains your current database schema, as well as the database migrations. |
| Gemfile Gemfile.lock | These files allow you to specify what gem dependencies are needed for your Rails application. These files are used by the Bundler gem. |
| lib/ | Extended modules for your application. |
| log/ | Application log files. |
| public/ | The only folder seen by the world as-is. Contains static files and compiled assets. |
| Rakefile | This file locates and loads tasks that can be run from the command line. The task definitions are defined throughout the components of Rails. |
| README.md | This is a brief instruction manual for your application. You should edit this file to tell others what your application does, how to set it up etc |
| test/ | Unit tests, fixtures, and other test apparatus. |
| temp/ | Temporary files (like cache and pid files). |
| vendor/ | A place for all third-party code. In a typical Rails application this includes vendored gems. |
Now you need to create a database from your database.yml file:
rake db:create
# OR
rails db:create
rake db:create
Now that we've created the database, we need to run migrations to set up the tables:
rake db:migrate
# OR
rails db:migrate
rake db:migrate
To start the application, we need to fire up the server:
$ rails server
# OR
$ rails s
By default, rails will start the application at port 3000. To start the application with different port number, we need to fire up the server like,
$ rails s -p 3010
If you navigate to http://localhost:3000 in your browser, you will see a Rails welcome page, showing that your application is now running.
If it throws an error, there may be several possible problems:
config/database.ymlGemfile that have not been installed.rails db:migraterails db:rollbackIf that still throws an error, then you should check your config/database.yml