Show Menu
Cheatography

Table with count method react Cheat Sheet by

Step

1. new Rails applic­ation
rails new dog-app -T
2. directory to access
cd dog-app/
3. Generate the model
rails g model dog name motto
 
This creates 2 files: app/mo­del­s/d­og.rb db/mig­rat­e/[­dat­e_t­ime­]_c­rea­te_­dogs.rb The dog table in our database will have 2 fields: name and motto.
4. Generate the controller
rails g controller dogs index show new edit
5. The config­/ro­utes.rb file also gets automa­tically updated:

5. Update the config­/ro­utes.rb

Rails.application.routes.draw do
  resources :dogs
end

6. migrate our data

class CreateDogs < ActiveRecord::Migration[5.2]
  def change
    create_table :dogs do |t|
      t.string :name
      t.string :motto
      
      t.timestamps
    end
  end
end
rake db:migrate

7. Update the db/mig­rat­e/s­eeds.rb

Dog.create(name: 'Nala', motto: 'Born to be wild')
Dog.create(name: 'Alex', motto: 'Calm as can be')
Dog.create(name: 'Leroy', motto: 'Life of the pawty')
Dog.create(name: 'Belle', motto: 'Miss Independent')
rake db:seed

(1).­con­fig­/ro­ute­s.rb

1.config/routes.rb
Rails.application.routes.draw do
  resources :barangs
end

(2)d­b/m­igr­ate­/20­190­510­051­736­_cr­eat­e_b­ara­ngs.rb

2.db/migrate/20190510051736_create_barangs.rb
class CreateBarangs < ActiveRecord::Migration[5.2]
  def change
    create_table :barangs do |t|
      t.string :sku
      t.string :nama
      t.integer :kuantitas
      t.integer :hargaBeli
      t.integer :hargaJual
      t.integer :profit

      t.timestamps
    end
  end
end

(3).­db/­see­ds.rb

3.db/seeds.rb
Barang.create(sku:'AIR001', nama: 'Air mineral Aqui', kuantitas:10, hargaBeli: 3000, hargaJual: 6000, profit: 3000)
Barang.create(sku:'SOF001', nama: 'Choca Chola', kuantitas:20, hargaBeli: 5000, hargaJual: 4500, profit: -500)
Barang.create(sku:'SNK001', nama: 'Cheetah Toh', kuantitas:15, hargaBeli: 4000, hargaJual: 5000, profit:1000)
 

8. added to your database

In order to check if the dogs have been added to your database, run:

rails console or rails c

Type in Dog.all and you should see that the 4 dogs have been added.

FYI. Run rails routes or go to localh­ost­:30­00/­rai­ls/­inf­o/r­outes to see all routes your applic­ation is configured to:

9. Read

Goal: List all dogs

Controller — app/controllers/dogs_controller.rb, index method
def index
   @dogs = Dog.all
end

Index — views/dogs/index.html.erb
<ul>
  <% @dogs.each do |dog| %>
    <li><%= link_to dog.name, dog_path(dog)  %></li>
  <% end %>
</ul>

10. Read(Show details of specific dog)

Goal: Show details of specific dog

Controller — app/controllers/dogs_controller.rb, show method 
 def show
    @dog = Dog.find(params[:id])
  end


Show — views/dogs/show.html.erb
<h1><%= @dog.name %></h1>
<h4>"<%= @dog.motto %>"</h4>

(4).­app­/co­ntr­oll­ers­/ba­ran­gs_­con­tro­lle­r.rb

4.app/controllers/barangs_controller.rb
class BarangsController < ApplicationController
  def index
    @barangs = Barang.all    
 end

  def show
    @barangs = Barang.find(params[:id])
  end

  def new
    @barangs = Barang.new
    @hasilProfit = MathCalculator.send(params[:operation], *[params[:a], params[;b]])
    render : index
  end

  def create
    @barang = Barang.create(barang_params)

    redirect_to barangs_path
  end

  def barang_params
    params.require(:barang).permit(:sku, :nama, :kuantitas, :hargaBeli, :hargaJual, :profit)
  end

  def edit
    @barang = Barang.find(params[:id])
  end

  def destroy
    @barang = Barang.find(params[:id])
    @barang.destroy

    redirect_to barangs_path
  end

  def update
    @barang = Barang.find(params[:id])
    @barang.update(barang_params)

    redirect_to barangs_path
  end

  def get_profit 
    count_profit = ProfitCalculator.new params[:operation]
    @result = profit_calculator.calculate
  end
end

(5)a­pp/­vie­ws/­bar­ang­s/i­nde­x.h­tml.erb

5.app/views/barangs/index.html.erb
<style>
    table{
    margin-left: auto;
    margin-right: auto;
    }
    .tabel2 {
    border-collapse: collapse;
    }

    .tabel2, tr, th, td {
    border: 1px solid black;
    }

</style>

<h1>Daftar Barang</h1>


<table class='tabel2'>
<thead>
<tr>
<th>SKU</th>
<th>Nama</th>
<th>Kuantitas </th>
<th>Harga beli</th>
<th>Harga jual</th>
<th>Profit per item</th>
<th colspan="2">Action</th>

</tr>
</thead>
<tbody>

<% @barangs.each do |barang| %>
<tr>
<td scope="row"><%= barang.sku %></td>
<td><%= barang.nama%></td>
<td><%= barang.kuantitas  %></td>
<td><%= barang.hargaBeli %></td>
<td><%= barang.hargaJual  %></td>%
<td>
    <% unless @hasilProfit.nil?  %>
    <%= @hasilProfit %>
    <% end %>
</td>
<td><%= button_to 'Edit', edit_barang_path(barang), method: 'get'%></td>
<td><%= button_to 'Remove', barang_path(barang), method: 'delete', data: { confirm: 'Anda Yakin?' } %></td>
</tr>
<% end %>
</tbody>
</table>
<%= link_to "Add a New Barang", new_barang_path %>

(6).a­pp/­vie­ws/­bar­ang­s/e­dit.ht­ml.e­rb*

6.app/views/barangs/edit.html.erb*
<h1>Edit Barang</h1>


<h3>Update Barang Details</h3>
<%= form_with model: @barang do |form| %>
  <%= form.text_field :sku, placeholder: "sku" %>
  <%= form.text_field :nama, placeholder: "nama" %>
  <%= form.number_field :kuantitas,  placeholder: "kuantitas" %>
  <%= form.number_field :hargaBeli,  placeholder: "hargaBeli" %>
  <%= form.number_field :hargaJual,  placeholder: "hargaJual" %>
  <%= form.number_field :profit,  placeholder: "profit" %>

  <%= form.submit %>
<% end %>
 

11. Create­(Create a new dog)

Goal: Create a new dog

Controller — app/controllers/dogs_controller.rb, new and create methods 
def new
    @dog = Dog.new
  end

  def create
    dog = Dog.create(dog_params)

    redirect_to dogs_path
  end

  private

  def dog_params
    params.require(:dog).permit(:name, :motto)
  end


New — views/dogs/new.html.erb
<h3>Create a Dog</h3>
<%= form_with model: @dog do |form| %>
  <%= form.text_field :name, placeholder: "name" %>
  <%= form.text_field :motto, placeholder: "motto" %>

  <%= form.submit %>
<% end %>

12.Update

Goal Update details for specific dog
Controller — app/controllers/dogs_controller.rb, edit and update methods 
  def edit
    @dog = Dog.find(params[:id])
  end

  def update
    @dog = Dog.find(params[:id])
    @dog.update(dog_params)

    redirect_to dog_path(@dog)
  end

  private

  def dog_params
    params.require(:dog).permit(:name, :motto)
  end


Edit — views/dogs/edit.html.erb
<h3>Update Dog Details</h3>
<%= form_with model: @dog do |form| %>
  <%= form.text_field :name, placeholder: "name" %>
  <%= form.text_field :motto, placeholder: "motto" %>

  <%= form.submit %>
<% end %>

13. Delete­(Remove a dog from the database)

Goal: Remove a dog from the database
Controller — app/controllers/dogs_controller.rb, destroy method


  def destroy
    @dog = Dog.find(params[:id])
    @dog.destroy

    redirect_to dogs_path
  end

Show — views/dogs/show.html.erb
<%= link_to 'Remove', @dog, method: :delete, data: { confirm: 'Are you sure?' } %>

(7).­app­/vi­ews­/ba­ran­gs/­new.ht­ml.e­rb

7.app/views/barangs/new.html.erb
<h1>Buat Data Barang</h1>


<h3>Create Barang</h3>
<%= form_with model: @barangs do |form| %>
  <%= form.text_field :sku, placeholder: "sku" %>
  <%= form.text_field :nama, placeholder: "nama" %>
  <%= form.number_field :kuantitas, placeholder: "kuantitas" %>
  <%= form.number_field :hargaBeli, placeholder: "hargaBeli" %>
  <%= form.number_field :hargaJual, placeholder: "hargaJual" %>
  <%= form.number_field :profit, placeholder: "profit" %>

  <%= form.submit %>
<% end %>

(8).­app­/vi­ews­/ba­ran­gs/­sho­w.h­tml.erb

8.app/views/barangs/show.html.erb
<h1>Lihat Barang</h1>

<h1><%= @barangs.sku %></h1>
<h4><%= @barangs.nama %></h4>
<h4><%= @barangs.kuantitas %></h4>
<h4><%= @barangs.hargaBeli %></h4>
<h4><%= @barangs.hargaJual %></h4>
<h4><%= @barangs.profit %></h4>

(9).­lib­/ma­th_­cal­cul­ato­r.rb

9.lib/math_calculator.rb
class MathCalculator
    def calculateProfit(a, b)
      # whatever you need to do here
      a.to_i - b.to_i
    end
  end
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          ES7 React VSCode Shortcuts Keyboard Shortcuts

          More Cheat Sheets by amihapsari

          Table Hitung Angular 6 Cheat Sheet