Kamis, 18 September 2014

Membuat Aplikasi POS dengan Ruby on Rails 4 part 1

Pengelolaan keuangan adalah salah satu hal pokok yang harus diperhatikan oleh usaha kecil dan menengah (UKM). Untuk membantu memantau kondisi bisnis, kita membutuhkan software Point of Sales ( POS) sederhana yang dapat membantu mencatat aktivitas transaksi. Berikut beberapa fitur yang akan di bangun :
  1. Management Barang
  2. Management Penjualan
  3. Management User + Login

Persiapan

Pastikan di komputermu sudah terinstall:

  1. Ruby versi 2.x
  2. Rails versi 4.x
  3. Database Mysql 
  4. Mozila Firefox   
Kemudian berikut adalah Gems yang akan kita gunakan:
  1. Devise
  2. Cancan
  3. Nested Form
  4. Public Activity

Buat Project Baru 

  1. Membuat project baru dengan mysql
  2. $ rails new sales -d mysql 
    $ cd sales
  3. Edit gemfile tambahkan code baris berikut
  4.   gem 'devise'   
      gem "cancancan"   
      gem "nested_form"    
      gem 'public_activity'  
    
    $ bundle install

Memasang Bootstraps

  1. Buka url http://getbootstrap.com/getting-started/#download
  2. Setelah download copy dan paste isinya ke dalam folder sales/app/assets
  3. Semua file di folder  css copy dan paste  di sale/app/stylesheets
  4. Semua file di folder js copy dan paste di sale/app/javascripts

Home

  1. kita buat controller dan foldernya view lewat comand
  2. rails g controller home 
  3. Buat file index di view/home
  4. Isi dengan <p>welcome</p>
  5. Edit config/routes.rb tambahkan kode berikut
  6.  root to: 'home#index'  
    

Memasang Devise

OK sampai sini bootstrap dan homenya sudah dibuat, sekarang kita akan buat login untuk user, berikut langkahnya
  1. Generate devise 
  2. $ rake db:create
    $ rails generate devise:install
    $ rails generate devise User
    $ rails generate model role name:string
    $ rails g migration addRoleIdToUser role_id:integer
  3. Setelah selesai lakukan migration database
  4. $ rake db:migrate
  5. Masuk ke folder app -> models kemudian Edit file model user dan role.rb
     class User < ActiveRecord::Base  
        belongs_to :role
        devise :database_authenticatable, :registerable,
             :recoverable, :rememberable, :trackable, :validatable
    end
    
  6.   
     class Role < ActiveRecord::Base  
        has_many :users  
     end  
    
  7. Edit seed.rb di folder db
  8.  r1 = Role.create(:name => 'user')  
     r2 = Role.create(:name => 'admin')  
     us1 = User.create(:email => 'user@gmail.com' , :password => 'q1w2e3r4', :role_id => r1.id)   
     us2 = User.create(:email => 'admin@gmail.com' , :password => 'q1w2e3r4', :role_id => r2.id)  
    
  9. Untuk memasukan data jalankan perintah berikut
    $ rake db:seed
  10. Untuk membuat user yang sign_up defautlnya adalah role user tambahkan code berikut di model user.rb
  11.   before_create :set_default_role  
      private  
      def set_default_role  
       self.role ||= Role.find_by_name('user')  
      end  
    
  12. Untuk menjalankan server ketikan code berikut di terminal 
  13. $ rails s
  14. Buka browser ketikan http://localhost:3000/users/sign_in maka akan tampil halaman seperti berikut 

Layout

Kita akan membuat desain utama aplikasi ini ,cukup mudah karena desainnya sangat sederhana
  1. Edit file application.html.erb
  2.   <!DOCTYPE html>   
      <html>   
      <head>   
        <title>Sale</title>   
        <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>   
        <%= javascript_include_tag "application", "data-turbolinks-track" => true %>   
        <%= csrf_meta_tags %>   
      </head>   
      <body>   
        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">   
           <div class="container">   
             <div class="navbar-header">   
                <a class="navbar-brand" href="#">Sale</a>   
             </div>   
             <ul class="nav navbar-nav">    
             </ul>   
             <ul class="nav navbar-nav navbar-right">   
                <% if user_signed_in? %>   
                <li><%= link_to current_user.email, edit_user_registration_path %></li>   
                <li><%= link_to "Log Out" , destroy_user_session_path, method: :delete %></li>   
                <% else %>   
                <li><%= link_to "Sign In", user_session_path %></li>   
                <li><%= link_to "Register", new_user_registration_path %></li>   
                <% end %>   
             </ul>   
           </div>   
        </div>   
        <div class="container">   
           <% flash.each do |type, message| %>   
           <div class="alert <%= flash_class type %> alert-dismissable">   
             <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>   
             <p><%= message %></p>   
           </div>   
           <% end %>   
           <%= yield %>   
        </div>   
      </body>   
      </html>   
    
  3. Edit application_helper.rb
  4.  def flash_class(type)  
      case type  
      when :alert  
        "alert-danger"  
      when :notice  
        "alert-success"  
       else  
        "" end  
     end  
    
  5. Edit file aplication.css di folder app/assets/stylesheet
  6.  body {  
           padding-top: 70px;  
     }  
    
  7. Layoutnya nanti akan seperti gambar berikut

Generate Model dan Controller

Kita akan generate model dan controller, tujuannya agar tidak buat file satu persatu  
  1. Scaffold untuk generate view model dan controller  
  2. $ rails g scaffold product code:string name:string price:decimal user:belongs_to
    $ rails g scaffold sale name:string total:decimal user:belongs_to
  3. Model untuk generate model saja
  4. $ rails g model item product:belongs_to sale:belongs_to quantity:decimal total:decimal
  5.  Setelah selesai databasenya di migrate atau di reset ulang 
  6. $ rake db:migrate
  7. Masuk folder model pada file product tambahkan code berikut
  8.  has_many :items  
    
  9. Masuk folder model pada file sale tambahkan code berikut
  10.  has_many :items  
    
  11. Edit form partial _form.html.erb di folder view/products dan view/sales hapus baris code berikut
  12.   <div class="field">  
       <%= f.label :user_id %><br>  
       <%= f.text_field :user_id %>  
      </div>  
    
  13. Edit file index.html.erb di folder view/products hapus baris code berikut
  14.  <th>User</th>  
    
     <td><%= product.user %></td>  
    
  15. Edit file index.html.erb di folder view/sales hapus baris code berikut
  16.  <th>User</th>  
    
     <td><%= sale.user %></td>  
    
  17. Untuk memasang tema bootstrap ke dalam tabel edit index.html.erb di folder products and sales perhatikan baris <table> dan tambahkan code berikut
  18.  <table class="table table-striped">  
    
  19. Edit aplication.html.erb di folder layout tambahkan baris code setelah tag <ul class="nav navbar-nav"> </ul>
  20.  <li><%= link_to "All Sales", sales_path %></li>  
     <li><%= link_to "All Products", products_path %></li>  
    
  21. View tablenya akan seperti berikut


Untuk selanjutnya silahkan cek link ini: Membuat Aplikasi POS dengan Ruby on Rails 4 Part 2

105 komentar:

  1. Sumber yang baik buat belajar Ruby on rails

    BalasHapus
  2. cara membuka dan mengedit gemfile-nya bagaimana??

    BalasHapus
    Balasan
    1. Halo Mas Azis,
      Untuk membuka dan mengedit Gemfile, bisa menggunakan text editor seperti sublime, gedit, notepad, dan sejenisnya.
      Pada postingan sebelumnya ada juga pembahasan mengenai text editor dan IDE untuk ruby on rails.
      http://www.belajarrubyonrails.com/2012/08/text-editor-ide-untuk-ruby-on-rails.html

      Hapus
    2. terima kasih jawabannya,,tapi gemfilenya sendiri lokasinya ada dimana? saya search di folder rubynya, gemfilenya ada banyak

      Hapus
    3. Gemfile itu ada di folder aplikasi rails yang Anda buat.
      Ketika menjalankan perintah
      rails new sales -d mysql

      anda akan dibuatkan folder rails aplikasi. Nah Gemfile itu ada di dalam folder tersebut

      Hapus
    4. Komentar ini telah dihapus oleh pengarang.

      Hapus
  3. Waktu jalankan perintah "gem install" keluar pesan ERROR:IPv4 address expect 4 bytes but 1 bytes. Please help

    BalasHapus
    Balasan
    1. Hi Mas Wahyu,

      Itu masalah setting APN protocol. Solved nya ada disini:

      http://stackoverflow.com/questions/28551695/ipv4-address-expects-4-bytes-but-1-bytes-error-when-gem-install

      Hapus
  4. selalu fail di perintah "rake db:migrate" kira-kira apa masalahnya..?
    versi Ruby 2.1.5p273 (2014-11-13 revision 48405) [i386-mingw32]
    versi Rails 4.1.8
    versi Gem 2.2.3

    BalasHapus
  5. rails server saya gak bisa jalan mas, pake win 7 pesan errornya : c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18-x86-mingw32/lib/mysql2/mysq
    l2.rb:2:in `require': cannot load such file -- mysql2/2.2/mysql2 (LoadError)
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18-x86-mingw32/li
    b/mysql2/mysql2.rb:2:in `'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18-x86-mingw32/li
    b/mysql2.rb:31:in `require'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18-x86-mingw32/li
    b/mysql2.rb:31:in `'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.1/lib/bundler/r
    untime.rb:76:in `require'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.1/lib/bundler/r
    untime.rb:76:in `block (2 levels) in require'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.1/lib/bundler/r
    untime.rb:72:in `each'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.1/lib/bundler/r
    untime.rb:72:in `block in require'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.1/lib/bundler/r
    untime.rb:61:in `each'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.1/lib/bundler/r
    untime.rb:61:in `require'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.1/lib/bundler.r
    b:133:in `require'
    from c:/row/sales/config/application.rb:7:in `'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/com
    mands/commands_tasks.rb:78:in `require'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/com
    mands/commands_tasks.rb:78:in `block in server'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/com
    mands/commands_tasks.rb:75:in `tap'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/com
    mands/commands_tasks.rb:75:in `server'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/com
    mands/commands_tasks.rb:39:in `run_command!'
    from c:/row/Ruby22/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/com
    mands.rb:17:in `'
    from bin/rails:4:in `require'
    from bin/rails:4:in `'

    BalasHapus
    Balasan
    1. Mysql server nya sudah running Mas ?

      Hapus
  6. Memasang Bootstraps

    Buka url http://getbootstrap.com/getting-started/#download
    Setelah download copy dan paste isinya ke dalam folder sales/app/assets
    Semua file di folder css copy dan paste di sale/app/stylesheets
    Semua file di folder js copy dan paste di sale/app/javascripts

    sale/app/stylesheets dan sale/app/javascripts gak ada mas? apa maksudnya di assets?

    BalasHapus
    Balasan
    1. ya betul.. didalam assets jadi untuk css "sale/app/assets/stylesheets"
      dan untuk javascript "sale/app/assets/javascripts"

      Hapus
  7. Klo menggunakan MySQL bawaan XAMPP bisa ga? Soale sy dah nginstal PHP Development dengan XAMPP... Atau harus di-uninstall dl ?

    BalasHapus
    Balasan
    1. Bisa Mas, ga usah uninstall dulu terus install baru. Pake aja yang sudah bundle dengan XAMPP.

      Hapus
  8. Hallo,

    Coba solusi ini:

    Buka Gemfile

    Ganti:

    source 'https://rubygems.org'

    Menjadi:

    source 'http://rubygems.org'

    kemudian jalankan

    bundle install

    BalasHapus
  9. Install Berhasil..!!! Thanks ya..

    BalasHapus
  10. Pada perintah rails g controller home, terdapat error :
    c:\railsinstaller/ruby2.0.0/lib/ruby/gems/2.0.0/gems/activerecord-4.1.8/lb/active_record/connection_adapters/connection_specification.rb:190:in 'rescue in spec'" Specified 'mysql2' for database adapter, but the gem is not loaded. Add 'gem 'mysql2' ' to your Gemfile .

    Kenapa ya? mysql sudah saya jalankan..

    BalasHapus
    Balasan
    1. Mas bikin aplikasi nya pake ini:
      rails new sales -d mysql

      kalo engga pake -d mysql, tolong buka Gemfile terus tambahkan:

      gem "mysql2"

      terus di console jalankan:

      bundle install

      Hapus
  11. gan saya selalu error di $ rake db:seed

    rake db:seed
    rake aborted!
    ActiveRecord::UnknownAttributeError: unknown attribute 'password' for User.
    /Users/avif/sales/db/seeds.rb:3:in `'
    NoMethodError: undefined method `password=' for #
    /Users/avif/sales/db/seeds.rb:3:in `'
    Tasks: TOP => db:seed
    (See full trace by running task with --trace)
    avifs-MacBook-Pro:sales avif$

    BalasHapus
  12. gan saya sellar error di $ rake db:seed

    rake db:seed
    rake aborted!
    ActiveRecord::UnknownAttributeError: unknown attribute 'password' for User.
    /Users/avif/sales/db/seeds.rb:3:in `'
    NoMethodError: undefined method `password=' for #
    /Users/avif/sales/db/seeds.rb:3:in `'
    Tasks: TOP => db:seed
    (See full trace by running task with --trace)
    avifs-MacBook-Pro:sales avif$

    BalasHapus
    Balasan
    1. Mas, bisa sudah jalankan:

      rails generate devise User
      &
      rake db:migrate

      ?

      Hapus
  13. mas TS,,,saya juga punya masalah yg sama dengan rake db:seed, sudah dilakukan semuanya urutannya pun sama, mohon solusinya ya kaka

    BalasHapus
    Balasan
    1. Hi Mas Danang,

      Bisa di copy-paste / screenshot error nya ?

      Hapus
    2. rake aborted!
      ArgumentError: Invalid route name, already in use: 'new_user_session'
      You may have defined two routes with the same name using the `:as` option, or yo
      u may be overriding a route already defined by a resource with the same naming.
      For the latter, you can restrict the routes created with `resources` as explaine
      d here:
      http://guides.rubyonrails.org/routing.html#restricting-the-routes-created
      D:/Project Ruby/CobaLoginMYSql/config/routes.rb:3:in `block in '

      D:/Project Ruby/CobaLoginMYSql/config/routes.rb:1:in `'
      C:in `execute_if_updated'
      D:/Project Ruby/CobaLoginMYSql/config/environment.rb:5:in `'
      Tasks: TOP => db:abort_if_pending_migrations => environment
      (See full trace by running task with --trace)

      Hapus
  14. rake aborted!
    ArgumentError: Invalid route name, already in use: 'new_user_session'
    You may have defined two routes with the same name using the `:as` option, or yo
    u may be overriding a route already defined by a resource with the same naming.
    For the latter, you can restrict the routes created with `resources` as explaine
    d here:
    http://guides.rubyonrails.org/routing.html#restricting-the-routes-created
    D:/Project Ruby/CobaLoginMYSql/config/routes.rb:3:in `block in '

    D:/Project Ruby/CobaLoginMYSql/config/routes.rb:1:in `'
    C:in `execute_if_updated'
    D:/Project Ruby/CobaLoginMYSql/config/environment.rb:5:in `'
    Tasks: TOP => db:abort_if_pending_migrations => environment
    (See full trace by running task with --trace)

    BalasHapus

  15. rake aborted!
    ArgumentError: Invalid route name, already in use: 'new_user_session'
    You may have defined two routes with the same name using the `:as` option, or yo
    u may be overriding a route already defined by a resource with the same naming.
    For the latter, you can restrict the routes created with `resources` as explaine
    d here:
    http://guides.rubyonrails.org/routing.html#restricting-the-routes-created
    D:/Project Ruby/CobaLoginMYSql/config/routes.rb:3:in `block in '

    D:/Project Ruby/CobaLoginMYSql/config/routes.rb:1:in `'
    C:in `execute_if_updated'
    D:/Project Ruby/CobaLoginMYSql/config/environment.rb:5:in `'
    Tasks: TOP => db:abort_if_pending_migrations => environment
    (See full trace by running task with --trace)

    BalasHapus
    Balasan
    1. Mas Danang,

      Kalau kami lihat di error log nya, maka
      kesalahannya ada di file config/routes.rb

      Coba copy-paste isi dari file config/routes.rb disini.

      Hapus
    2. Rails.application.routes.draw do
      devise_for :users
      root to: 'home#index'
      end

      Hapus
  16. Maaf telat balas Mas Danang,

    kami lihat kasus errornya karena ada duplikasi pendefinisian routes, sama dengan yang disini:
    http://stackoverflow.com/questions/18016761/rails-4-devise-invalid-route-name-already-in-use

    tapi dilihat dari copy-paste dari Mas Danang kami lihat tidak
    ada duplikasi pendefinisian routes untuk "users",

    apakah sekarang rake db:seed masih mengeluarkan error yang sama ?

    BalasHapus
  17. Mas maksudnya dari mysql ini menggunakan xampp kah mas ?
    Kalau di php kan di buat koneksi.php untuk bisa konek database di localhost.
    Kalau ruby ini bagaimana ya mas ? apakah di gemsnya atau yg lain mas ? maklum baru belajar :D

    BalasHapus
    Balasan
    1. Mas Andi,

      Mysql nya bisa menggunakan dari xampp.
      Koneksi dari rails ke mysql pake gem yang namanya mysql2.

      Hapus
  18. selamat sang mas...mohon bantuanya nih. pada saat mau jalan kan perintah rake db:seed munch eror :
    rake aborted!
    No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

    (See full trace by running task with --trace)
    192:~ YOI$ rake db:seed
    rake aborted!
    No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

    (See full trace by running task with --trace)
    192:~ YOI$ sudo rake db:seed
    Password:
    rake aborted!
    No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

    (See full trace by running task with --trace)
    192:~ YOI$ rake db:seed
    rake aborted!
    No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

    (See full trace by running task with --trace)

    BalasHapus
  19. selamat pagi...
    saat jalankan perintah rake db:seed munch eror :
    rake aborted!
    No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

    (See full trace by running task with --trace)
    192:~ YOI$ rake db:seed
    rake aborted!
    No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

    (See full trace by running task with --trace)
    192:~ YOI$ sudo rake db:seed
    Password:
    rake aborted!
    No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

    (See full trace by running task with --trace)
    192:~ YOI$ rake db:seed
    rake aborted!
    No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

    (See full trace by running task with --trace)

    Kesalahannya dimana ya mas ?
    Makasih mas bantuannya.

    Salam Gem

    BalasHapus
    Balasan
    1. Hi Mas Ade,

      Pastikan kalau eksekusi rake command nya di path applikasinya.

      misalnya kalau mas ade pakai windows dan membuat project di directory D:/data/application

      nah command harus di path yang sama.

      Hapus
    2. halo mas...iya udah dapet mas tengkiu yaaa.

      Hapus
  20. Edit file model user dan role.rb >> file nya ada dimana mas ? di folder sales tempat saya ga ada

    BalasHapus
    Balasan
    1. di folder sales -> app -> models

      Hapus
    2. Dayu Surya Fernandi16 Juni 2016 pukul 19.48

      di saya juga ga ada file model user dan role.rb
      mungkin create baru aja kali ya?

      Hapus
    3. letak file user.rb dan role.rb ada di folder "sales" kemudian folder "app" kemudian folder "models"

      kalau ada folder models tetapi tidak ada file use.rb berarti ada step yang kelewat

      Hapus
    4. Udah bisa makasih.

      Sekarang ada masalah di db:seed nya mas :D
      unknown attribute password for User.

      Hapus
    5. sepertinya ada kurang coba edit file user.rb di folder model

      class User < ActiveRecord::Base
      devise :database_authenticatable, :registerable,
      :recoverable, :rememberable, :trackable, :validatable
      end

      Hapus
    6. Dayu Surya Fernandi18 Juni 2016 pukul 18.42

      sudah berhasil, sepertinya tahap
      "$ rails generate devise User" atau
      "$ rails generate model role name:string" terlewati.
      namun saat saya jalankan server dengan "rails s", server tidak mau jalan

      Hapus
    7. tidak mau jalan gimana ada error? tolong kirim screenshootnya biar saya bisa cari tau penyebabnya

      Hapus
    8. Dayu Surya Fernandi20 Juni 2016 pukul 21.27

      ini gan ss nya http://imgur.com/VkuDphz .
      sebenernya pesannya masih banyak sampe bawah cuman layar laptop saya gamuat hehe.

      Hapus
    9. Sepertinya ada yang salah pada penulisan file model user.rb di folder sales -> app -> models
      coba samakan http://pastebin.com/raw/MYsevpE1

      ini resource

      Hapus
  21. D:\sales>rails s
    DL is deprecated, please use Fiddle
    => Booting WEBrick
    => Rails 4.2.5.1 application starting in development on http://localhost:3000
    => Run `rails server -h` for more startup options
    => Ctrl-C to shutdown server
    Exiting
    D:/sales/app/models/user.rb:6:in `': undefined method `before_cr
    eate' for main:Object (NoMethodError)
    from C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/activesupport-
    4.2.5.1/lib/active_support/dependencies.rb:457:in `load'

    Pas di rails s muncul gini kenapa ya mas?

    BalasHapus
    Balasan
    1. Bisa tolong copy-paste disini code user.rb nya ?

      Hapus
  22. Terima kasih, bagus ada blog yang menyediakan sumber belajar kaya gini, berbagi itu bermanfaat :)

    BalasHapus
  23. mas, kalau pakai ruby versi 1.9.3 bisa?

    BalasHapus
    Balasan
    1. Pake 1.9.3 masih bisa tapi ga disarankan.
      Kita saranin nya Mas upgrade / install ruby baru versi >= 2.

      Hapus
  24. gan maaf ngeganggu lagi
    kode error nya
    gem:: InstallError: cancancan requires ruby version >=2.0.0.
    An error occurred while installin cancancan-v <1.15.0>., and bundler cannot continue.
    make sure that 'gem install cancancan -v'1.15.0'` succeeds before bundling.

    ane udah coba gan nulis gem install cancancan -v 1.15.0
    malah keluar
    ERROR: Error installing cancancan:
    cancancan requires ruby version >=2.0.0.

    mohon petunjuk hehe soalnya klo ruby di update nothing to update

    BalasHapus
    Balasan
    1. Halo, untuk menggunakan gem cancancan pastikan ruby versionnya di update terlebih dahulu, kalau boleh tau OS yang digunakan apa ya?

      Hapus
    2. Bila OS nya linux kami sarangkan install ruby on rails menggunakan rbenv atau rvm agar lebih mudah dalam update versi rubynya.

      Rendi
      rendi.nusa@c-aio.com

      Hapus
    3. udah gan udah bisa haha makasih ya gan hehe

      Hapus
  25. Kalo di laptop sdh terinstal XAMPP, gmn? Buang dulu atau tetap dipake?

    BalasHapus
    Balasan
    1. Maaf nih baru bales,
      ga usah dibuang Mas, pake terus aja XAMPP nya.

      Hapus
  26. mas ubah Gemfilenya di ganti semua jadi sperti itu/cumman d tambahin? saat saya "bundle install" selalu ada keterangan The system cannot find itu giman ya?

    BalasHapus
  27. Mas itu yg gem nya d ubah semua/cuman di tambahin saja?
    ketika saya bundle install gagal.

    BalasHapus
    Balasan
    1. Iya betul ditambahin Mas, untuk erornya bisa tolong di copy-paste disini ?

      Hapus
  28. ini error kenapa ya ? ,, xampp ane uninstall tetep aja .
    pass saaat membuat database , rake db:create. malah error can't connect to mysql server on 'localhost' 10061 ..

    BalasHapus
    Balasan
    1. Menurut kami ada beberapa kemungkinan untuk masalah tersebut, yaitu:

      1. Mysql server belum di start
      2. Salah username dan password untuk connect ke mysql.
      Bisa di check di config/database.yml.

      Hapus
  29. mau tanya mas
    saya kan pakai mysql dari XAMPP itu configurasinya gimana ya ?

    saya pakai mac osx yosemite

    terima kasih

    BalasHapus
  30. No route matches [GET] "/users/sign_in" ini waktu jalanin k]di browsernya


    Rails.application.routes.draw do
    devise_for :users
    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
    root to: 'home#index'
    end

    BalasHapus
  31. Maaf ni numpang tanya kalau seperti ini bagaimana cara mengatasinya?

    Mysql2::Error: Table 'roles' already exists: CREATE TABLE `roles` (`id` int AUTO_INCREMENT PRIMARY KEY, `name` varchar(255), `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL) ENGINE=InnoDB
    c:/Sites/sales/db/migrate/20170210125926_create_roles.rb:3:in `change'
    ActiveRecord::StatementInvalid: Mysql2::Error: Table 'roles' already exists: CREATE TABLE `roles` (`id` int AUTO_INCREMENT PRIMARY KEY, `name` varchar(255), `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL) ENGINE=InnoDB
    c:/Sites/sales/db/migrate/20170210125926_create_roles.rb:3:in `change'
    Mysql2::Error: Table 'roles' already exists
    c:/Sites/sales/db/migrate/20170210125926_create_roles.rb:3:in `change'
    Tasks: TOP => db:migrate
    (See full trace by running task with --trace)

    BalasHapus
    Balasan
    1. Error ini karena table "roles" sudah ada di database.
      Jika table roles belum digunakan, kamu bisa hapus table roles dari database. Jika table roles sudah digunakan, solusinya adalah edit file migration dan hapus code untuk generate table roles.

      Hapus
  32. eror ketika menjalankan rake db:seed
    rake aborted
    Load error: cannot load such file -- bcrypt_ext
    C:/users/root/sales/db/seeds.rb:4:in '>'
    kenapa ya mas ?

    BalasHapus
    Balasan
    1. Cobain solusi dari sini Mas :

      http://stackoverflow.com/questions/33588735/loaderror-cannot-load-such-file-bcrypt-ext-on-windows-2008-x64-server

      Hapus
  33. Makasih abang tutornya, saya ada masalah ketika mau register, ketika disave mncul pesan error cannot load such file -- bcrypt_ext
    Mohon bantuannya :)

    BalasHapus
    Balasan
    1. Cobain solusi ini Mas

      Solution was here: bcrypt-ruby@github:

      Rebuild locally the bcrypt gem:

      1. Change to the gem directory \Ruby22-x64\lib\ruby\gems\2.2.0\gems\bcrypt-3.1.10-x64-mingw32\ext\mri>
      2. Run ruby extconf.rb
      3. Run make
      4. Run make install

      Note that this works only if your DevKit environment is correctly setup (run devkitvars.bat).

      Sumber:

      http://stackoverflow.com/questions/33588735/loaderror-cannot-load-such-file-bcrypt-ext-on-windows-2008-x64-server

      Hapus
  34. Wah mantab, tutorialnya jelas sekali, terima kasih ya atas ilmunya

    BalasHapus
  35. pas mengetikkan perintah bundle install kok munculnya "the system cannot find the path specified". Mohon pencerahannya

    BalasHapus
    Balasan
    1. Mas harus "cd" dulu ke path application rails nya

      Hapus
  36. pas run http://localhost:3000/users/sign_in kok unable to connect ya padahal sudah ketik rails s

    BalasHapus
    Balasan
    1. Waktu menjalankan rails s di command prompt / console, apakah ada error ?

      Hapus
    2. ada pesan error begini:

      ***SIGUSR2 not implemented, signal based restart unavailable!
      ***SIGUSR1 not implemented, signal based restart unavailable!
      ***SIGHUP nont implemented, signal based logs reopening unavailable!

      Hapus
    3. oh saya tau, ternyata waktu itu karna Ctrl+C di command prompt, makanya servernya mati.
      terimakasih tutorialnya. :D

      Hapus
    4. belongs_to itu maksudnya foreign key atau apa ya?

      Hapus
    5. Ok sip sama2..

      belongs_to itu artinya membuat relasi ke parent model.
      Mimin belum punya bahasan nya soal ini, tapi agan bisa liat disini ya:

      http://guides.rubyonrails.org/association_basics.html

      Hapus
  37. Min, butuh tutorial bikin nested dropdown pake ruby nih.

    BalasHapus
    Balasan
    1. Coba check disini gan:

      https://rubyplus.com/articles/3691-Dynamic-Select-Menus-in-Rails-5

      Hapus
  38. gan gimana cara mengatasi file error failed di perinah rake db:create???
    keterangan erronya failed to road libmysql.dll??

    BalasHapus
    Balasan
    1. Error seperti itu biasanya karena mysql belum / tidak terinstall dengan benar. Coba check kembali installasi mysql dan pastikan mysql sudah running ketika menjalankan rake db:create

      Hapus
  39. min mu tanya itukan buat Database nya dibuat dari console.. bagai mana cara mengkonekan bila databasenya sudah ada ??

    BalasHapus
    Balasan
    1. di setup di config/database.yml.
      Nama database nya di sesuaikan dengan database yang sudah ada.

      Hapus
  40. min kalo error gini gmna ya?

    R:\Pribadi\Rails\sales>rake db:seed
    rake aborted!
    LoadError: cannot load such file -- bcrypt_ext
    R:/Pribadi/Rails/sales/db/seeds.rb:14:in `'

    Caused by:
    LoadError: cannot load such file -- 2.3/bcrypt_ext
    R:/Pribadi/Rails/sales/db/seeds.rb:14:in `'
    Tasks: TOP => db:seed
    (See full trace by running task with --trace)

    BalasHapus
  41. min kalo error gini gmna ya solusinya?

    R:\Pribadi\Rails\sales>rake db:seed
    rake aborted!
    LoadError: cannot load such file -- bcrypt_ext
    R:/Pribadi/Rails/sales/db/seeds.rb:14:in `'

    Caused by:
    LoadError: cannot load such file -- 2.3/bcrypt_ext
    R:/Pribadi/Rails/sales/db/seeds.rb:14:in `'
    Tasks: TOP => db:seed
    (See full trace by running task with --trace)

    BalasHapus
  42. Halo Mas, silakan coba solusi dari sini:

    https://stackoverflow.com/questions/33588735/loaderror-cannot-load-such-file-bcrypt-ext-on-windows-2008-x64-server

    BalasHapus
  43. gan udh saya coba yg dari stackovrflw

    # gem install bcrypt --platform=ruby // tetep ga bisa

    trus yg *makefile nya // ga bisa juga
    mohon d jelaskan :))

    ============ERROR CODE=============

    D:\KAMPUS\ruby\sales>rake db:seed rake aborted! LoadError: cannot load such file -- bcrypt_ext D:/KAMPUS/ruby/sales/db/seeds.rb:11:in `' Caused by: LoadError: cannot load such file -- 2.3/bcrypt_ext D:/KAMPUS/ruby/sales/db/seeds.rb:11:in `' Tasks: TOP => db:seed (See full trace by running task with --trace)

    BalasHapus
  44. udah run devkitvars.bat

    tp pas make installnya

    C:\RailsInstaller\DevKit>make install make: *** No rule to make target `install'. Stop.

    BalasHapus
    Balasan
    1. Mengenai error cannot load such file — bcrypt_ext on Windows 2008 x64 server

      untuk tutorial disni tidak memakai bcrypt jadi hapus saja bcrypt pada Gemfile kemudian bundle install kembali

      Hapus
  45. halo min, saya uda mengikuti seluruh tahap sampai tahap terakhir dari artikel part 1 ini, namun saya mengalami kendala ketika melakukan login, username dan password saya dikatakan salah, kemudian ketika mencoba melakukan input data dari input sale atau product, maka akan muncul tulisan "User must exist"

    permasalahannya dimana ya min?
    mohon bantuannya

    BalasHapus
    Balasan
    1. Mas Abil, udah jalankan seed nya ?

      rake db:seed

      Hapus
    2. Oke min sudah berhasil.
      bootstrap saya tidak jalan min, adakah perlu script import? krna di tutorial tidak ditunjukkan script import bootstrap.

      Hapus
    3. Sudah di download dan di copykan ke folder assets belum?
      bila sudah sesuai instruksi dan tidak muncul periksa file application.css dan apllication.js pastikan ada code //= require_tree .

      Hapus
  46. tutorial-tutorialnya sangat bermanfaat gan, ditunggu tutorial lainnya gan :)

    BalasHapus
  47. Ditunggu Tutorial Ruby on Rails versi 6 nya kak :)

    BalasHapus
  48. Error ka untuk Ruby on Rails Versi 6 :)

    BalasHapus
  49. ok Kami akan update untuk versi Rails 6 ya

    BalasHapus
  50. Setelah download copy dan paste isinya ke dalam folder sales/app/assets

    ini yang di download yang mananya ya mas?

    BalasHapus
    Balasan
    1. folder css dan folder js yang di copy ke sales/app/assets

      Hapus