This will be strictly instructional, follow this step by step guide to quickly build your backend.
1) In your terminal:
rails new APP-NAME --api
- Or add this flag if you have Postgres installed and would like to use it:
rails new APP-NAME --database=postgresql —-api
- If you choose to use Postgres, remember to turn Postgres on when you launch your server.
2) In your terminal:
cd APP-NAME && open Gemfile, then find and uncomment
gem 'rack-cors', then add this line of code on the next line:
3) In your terminal:
bundle && open config/initializers/cors.rb, then uncomment the following code and use
* for origins:
4) In your terminal:
open config/routes.rb, then add namespacing and resources:
# resources :posts, only: [:index, :create] is an example for when you have more models.
5) In your terminal:
rails g model User username password_digest
- Replace User with the model that you need.
- Replace username with the attributes that you need.
- We’re going to keep
Useras our example model going forward.
6) In your terminal:
open app/models/user.rb, then add your relationships:
7) In your terminal:
rails g controller api/v1/Users
Userswith the controller that you need.
8) In your terminal:
open app/controllers/api/v1/users_controller.rb, then add methods:
9) In your terminal:
rails g serializer User
Userwith the model that you need.
10) In your terminal:
open app/serializers/user_serializer.rb, then add attributes and relationships to other models:
has_many :postsafter creating your other model(s).
11) In your terminal:
rails db:create && rails db:migrate
12) Test this by running
rails c in your terminal then
- Ctrl + D to quit.
13) Launch! Type
rails s in your terminal then go to
[http://localhost:3000/api/v1/users](http://localhost:3000/api/v1/users) in your browser.
- Ctrl + C to quit.
- If not
localhost:3000, your terminal will tell you:
// rails s => Booting Puma => Rails 5.2.2 application starting in development => Run `rails server -h` for more startup options Puma starting in single mode… * Version 3.12.0 (ruby 2.3.4-p301), codename: Llamas in Pajamas * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://0.0.0.0:3000
Repeat steps 4–10 for your other models and that’s it, you’re done (with your backend).