Step 1
rails new <appname>
This rails command takes as an argument the name of the project. It will create a subdirectory called app in the current working directory. The standard database preconfigured is SQLite. If you wish to configure other databases such as mysql, oracle, postgresql, sqlite2, sqlite3, pass the -d or –database=option to the command above.
Step 2
rake db:create
or
rake db:create:all (this will create test and production databases)
You can get rails to create a new database for you by running the rails command above. If you are using SQLite, the database will be automatically created for you.
Step 3 (Optional)
rails dbconsole
This will allow you to look into the tables and records created for your application.
Step 4 (Optional)
rake db:migrate
This will check if your application is connected to a database. You will see an error below if you did not configure the root’s password properly.
rake aborted!
Access denied for user ‘root’@’localhost’ (using password: NO)
Step 5
rails generate model ModelName title:string body:text published_at:datetime
This command will create a model for the database. The model names in Rails corresponded to database table names. Article (model, camel-cased singular) => articles (table, lower-cased plural). Rails has a complex pluralization rules coded into it. So Person will create a table named people. You may pass in –skip -migration if you do not want to create a migration file. This command will create 4 files.
db/migrate/20140406203049_create_articles.rb
app/models/article.rb
test/unit/article_test.rb
test/fixtures/articles.yml
Step 6
rake db:migrate
If you are not planning to create tables manually through SQL, you can work with the migration file instead. After editing the migration file, run the rails command above.
Step 7 (Optional)
rake db:rollback
If you want to roll back the migration for any reason, run the rails command above. Due to the change instance method, it is easy for us to migrate-rollback database configurations.
Step 8
rails generate controller articles
This will create six files.
app/controllers/articles_controller.rb – handle requests and responses for the model Article
test/controllers/articles_controller_test.rb – functional tests for articles controller
app/helpers/articles_helper.rb – add utility methods used in views
test/helpers/articles_helper_test.rb – all helper tests for helper class
app/assets/javascript/articles.js.coffee – Javascript associated with views
app/assets/stylesheets/articles.css.scss – CSS specific to articles views
Step 9
rails generate migration add_excerpt_and_location_to_articles excerpt:string location:string
If you wish to add more fields, you should do using migrations. Run the rails command above. The migration file appear like the code below.
class AddExcerptAndLocationToArticles < ActiveRecord::Migration def change #add_column method #first argument is table name (articles) #second argument is field name #third argument is field type add_column :articles, :excerpt, :string add_column :article, :location, :string end end #run rake db:migrate
Step 10
The rules for data integrity are the responsibility of the model (app/models/article.rb)
class Article < ActiveRecord::Base validates_presence_of :title, :body end