Tampilkan postingan dengan label Ruby on Rails. Tampilkan semua postingan
Tampilkan postingan dengan label Ruby on Rails. Tampilkan semua postingan

Rabu, 30 Oktober 2024

Ransack pada ruby on rails

Ransack 

 adalah gem Ruby yang memungkinkan pencarian dan pemfilteran data pada model Active Record dengan sangat fleksibel dan mudah. Ini sangat berguna dalam aplikasi Ruby on Rails yang membutuhkan fitur pencarian atau penyaringan data berdasarkan kolom tertentu.

pertama kita harus memasukan gem 'ransack' pada Gemfile

gem 'ransack', '~> 4.2.1'
langkah selanjutnya kita harus membuat controller , contohnya Class User seperti dibawah
class UsersController < ApplicationController
  def index 
    @q = User.ransack(params[:q])
    @users = @q.result(distinct: true)
  end
end
setelah itu, kita harus buat tampilan di app/views/users/index.html.erb seperti contoh dibawah :
<%= search_form_for @q, url: users_path, method: :get do |f| %>
  
<%= f.label :name_cont, "Nama" %><%= f.search_field :name_cont %>
<%= f.label :age_cont, "Usia" %><%= f.search_field :age_cont %>
<%= f.label :email_cont, "Email" %><%= f.search_field :email_cont %>
<%= f.submit "Cari" %><% end %>
masukan juga routes untuk /users di config/routes.rb
resources :users
Pada models user.rb, kita harus definisikan bahwa field yang ada dalam class model User di set self.ransackable_attributes , contohnya seperti ini

class User < ApplicationRecord
  def self.ransackable_attributes(auth_object = nil)
    ["age", "created_at", "email", "id", "name", "updated_at"]
  end
end
Berikut hasil nya :




 










Senin, 28 Oktober 2024

Seri Belajar Ruby on Rails - Introducing Rails 7

Rails menyediakan generator pemanggil script yang ditujukan untuk membuat proses pengembangan menjadi lebih mudah. Pada tutorial ini penulis menggunakan ruby versi rails 7.2.1 dengan ruby 3.1.4. Untuk menggunakan generator untuk membuat Rails project baru, lakukan perintah berikut :

  1. pertama kali kita harus install dulu ruby depedency nya
  2. install depedency yang dibutuhkan seperti dibawah 
    sudo apt-get update
    
    sudo apt-get install git-core zlib1g-dev
    build-essential libssl-dev libreadline-dev libyaml-dev
    libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev 
    libcurl4-openssl-dev software-properties-common 
    libffi-dev
  3. tutorial ini akan menggunakan ASDF, ASDF alat manajemen versi untuk berbagai bahasa pemrograman dan alat pengembang. Dengan asdf, Anda dapat mengelola berbagai versi alat seperti Python, Node.js, Ruby, Elixir, dan banyak lagi dalam satu sistem
  4. install asdf dengan langkah berikut, ,kemudian tambahkan ke terminal anda :
    git clone https://github.com/excid3/asdf.git ~/.asdf
    echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
    echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc
    echo 'legacy_version_file = yes' >> ~/.asdfrc
    echo 'export EDITOR="code --wait"' >> ~/.bashrc
    exec $SHELL
      
  5. berikut syntax yang bisa di gunakan untuk manage asdf
    asdf list all ruby --> check all candidate ruby version in asdf
    asdf global ruby 3.1.4 --> use ruby global
    asdf install ruby 3.1.4 --> install ruby specific version
    asdf list ruby --> check installed ruby version
  6. selanjutnya lakukan perintah ini untuk menginstall rails
    gem install rails -v 7.2.1
  7. jika sudah kita bisa cek versi rails
    rails -v
  8. kemudian buat aplikasi dengan perintah berikut :
    rails new rails7_app -d postgresql
  9. lalu masukan perintah ini jika ada error saat running server
    rake db:create
  10. jika issue sudah hilang, maka bisa menyalakan server local
    rails server
  11. jika berhasil maka akan menghasilkan seperti ini :

Struktur Code Aplikasi 

Berikut penjelasan struktur aplikasi yang ada di rails 7 : 


  1. app

models: Tempat untuk semua Model. Model berinteraksi dengan database dan berisi logika bisnis aplikasi. Biasanya setiap model merepresentasikan tabel dalam database.

            Contoh: app/models/user.rb (Model untuk entitas pengguna)

controllers: Tempat untuk semua Controller. Controller menangani permintaan dari browser, memprosesnya, dan merespon dengan menampilkan View yang sesuai.

            Contoh: app/controllers/users_controller.rb

views: Menyimpan semua View. View adalah template yang akan dikirimkan ke pengguna sebagai respons HTML (atau format lainnya). Rails 7 mendukung template berbasis HTML ERB, Haml, Slim, dan lainnya.

            Contoh: app/views/users/index.html.erb

helpers: Modul yang berisi metode-metode pembantu untuk View, seperti fungsi format tanggal atau pembuatan link dinamis.


javascript: Rails 7 menggunakan integrasi dengan Import Maps atau Webpacker untuk mengelola berkas JavaScript. Biasanya JavaScript untuk front-end ditempatkan di sini.

            Contoh: app/javascript/application.js

channels: Folder ini digunakan untuk ActionCable, yang digunakan untuk implementasi WebSockets dalam Rails, misalnya untuk aplikasi real-time seperti chat.


mailers/: Digunakan untuk mengelola template dan logika pengiriman email.


assets/: Berisi file statis seperti gambar, CSS, dan JavaScript. Rails 7 menggunakan konfigurasi yang lebih modern, dan file statis bisa dikelola dengan berbagai tool, termasuk Sprockets atau Webpack.


  1. config

routes.rb : Mendefinisikan semua rute URL yang tersedia dalam aplikasi, menghubungkannya dengan controller yang tepat.


environments : Terdapat konfigurasi terpisah untuk lingkungan development, test, dan production.


database.yml : Mengatur koneksi ke database.


  1. db

migrate/: Folder ini berisi migration file, yaitu file untuk membuat atau mengubah struktur database. Rails menggunakan ActiveRecord untuk manajemen migration, yang memungkinkan modifikasi database secara version-controlled.

            Contoh: db/migrate/20241007123456_create_users.rb

seeds.rb: File yang digunakan untuk memuat data awal atau contoh ke dalam database.


  1. lib

Folder ini biasanya berisi modul atau library yang digunakan secara global dalam aplikasi. Biasanya digunakan untuk code yang tidak cocok masuk ke dalam model, controller, atau helper.

  1. test/spec

Folder ini digunakan untuk menyimpan tes unit, tes fungsi, dan tes integrasi untuk aplikasi Rails.

  1. bin

Berisi script yang dapat dieksekusi, seperti rails, rake, dan script untuk proses server.

  1. Gemfile

File ini berisi daftar semua gem (library Ruby) yang diperlukan oleh aplikasi. Ketika menjalankan bundle install, gems ini akan diunduh dan dipasang.

  1. log

Semua log aplikasi tersimpan di sini, baik untuk development, test, atau production environment.

  1. public

Berisi file statis publik seperti gambar, favicon, atau file HTML statis yang dapat diakses langsung tanpa melalui controller.




Membuat Controller dan View

Sebuah project Rails, minimalnya harus memiliki sebuah controller dan sebuah view.

Untuk membuat controller dan view kita bisa memanfaatkan generator yang telah disediakan oleh Rails.

rails g controller Home index

  1. Ini artinya yang dilakukan generator Rails membuat controller home_controller.rb

  2. sedangkan pada view generator otomatis membuat folder baru pada bagian views dengan nama home

  1. jika ingin melakukan perubahan , kita bisa rubah di

            learn_rails_7/rails7_app/app/views/home/index.html.erb

  1. kemudian method route terletak di config/routes.rb

  2. Pada browser masukkan url http://localhost:3000/home/index pada web browser.


Senin, 30 Juli 2012

Install Ruby on Rails di Windows dengan Rails Installer

Untuk menggunakan framework Ruby on Rails versi 3 ke atas, seminimalnya inilah yang harus anda install:
  1. Ruby 
  2. RubyGems
  3. Rails Gem
  4. Bundler Gem
  5. Devkit
  6. Database ( Mysql / Sqlite / Sql Server / Postgree / dll )
Anda bisa install semua software tersebut secara terpisah dengan download installer nya satu persatu. Jika anda pertama kali install Ruby on Rails, Kami sarankan untuk menggunakan package dari RailsInstaller karena sangat mudah dan praktis dan tentu saja gratis :-) . Selain untuk windows, Rails Installer ini juga tersedia untuk OS X.

Langkah - langkah installasinya sebagai berikut:

1. Download Source Rails Installer

    Download railsinstaller dari: http://railsinstaller.org/en

2. Run Rails Installer
    
    Klik 2x pada source Rails Installer yang sudah Anda download.

 Jika muncul notifikasi seperti di atas, maka Klik tombol Run.



Klik tombol Next >


Baca Aggrement dengan seksama, kemudian jika Anda setuju, klik pilihan 
I accept all of the lincenses dan klik tombol Next >

    

3. Atur Path untuk Rails Installer

 Rails Installer akan menanyakan lokasi penyimpanan
hasil installasi Rails Installer.
Jika Anda sudah setuju untuk menyimpan hasil installasi sesuai
 dengan default pada windows diatas, maka klik tombil Install, 
 jika ingin merubah lokasinya silakan rubah
pada text box yang disediakan.


Tunggu proses installasi.


4. Testing Installasi

Setelah intallasi selesai, maka pastikan untuk cek hasil installasi anda benar dengan membuka Command Prompt dan menjalankan perintah:


ruby -v



rails -v



gem -v


Silakan lihat gambar berikut untuk lebih jelas:


Cek versi Ruby




Cek versi Rails



Cek versi RubyGems


  Notes: Versi Rails Installer yang kami gunakan mungkin berbeda dengan Anda, karena itu
             versi yang akan muncul di command prompt Anda mungkin berbeda.



Jika hasil di cek installasi tidak ada error, maka sekarang Anda sudah bisa belajar ruby on rails lebih mendalam dan dapat mencobanya langsung.

Untuk memperbaiki error "the system cannot find the path specified" lakukan cara berikut :
  1. Rails yang telah terinstal, coba buka folder RailsInstaller/Ruby2.2.0/bin. Lalu buka file rails dan bundle yang format filenya 'Batch'.



  2. Lalu rubah baris code @"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\ruby.exe" menjadi @"%~dp0ruby.exe" seperti di bawah ini.

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"%~dp0ruby.exe" 
"C:/Users/emachnic/GitRepos/railsinstaller-windows/stage/Ruby2.2.0/bin/rails" 
%1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"%~dp0ruby.exe" "%~dpn0" %*
File Rails

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"%~dp0ruby.exe" 
"C:/Users/emachnic/GitRepos/railsinstaller-windows/stage/Ruby2.2.0/bin/bundle" 
%1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"%~dp0ruby.exe" "%~dpn0" %*
File Bundle


Pengecekan versi ruby, rails, dan gem sukses.

Kita akan mencoba untuk membuat sebuah proyek kecil untuk mengetes bahwa rails benar-benar telah terinstal dan siap untuk dipakai.


Buat Project Baru
  1. Membuat Project Baru dengan nama blog
  2. $ rails new blog
    $ cd blog
  3. Membuat CRUD item menggunakan scaffold
  4. $ rails generate scaffold item name:string price:decimal stock:integer

  5. Membuat Database Baru untuk item
  6. $ rake db:create
    $ rake db:migrate
    $ rails s 

  7. Silahkan cek localhost:3000/items, untuk memastikan kalau CRUD sukses dibuat.

Catatan : Apabila terjadi error, tidak dapat melakukan bundle install atau tidak dapat melakukan scaffold.
  1. Buka folder proyek yang telah di buat.
  2. Buka file 'gemfile' 
  3. Baris pertama rubah HTTPS menjadi HTTP

Happy Coding !!




Kamis, 26 Juli 2012

Apa itu Ruby on Rails ?

Anda mungkin sudah mendengar tentang Ruby on Rails yang saat ini banyak diperbincangkan
developer di luar dan di dalam Negeri karena memiliki beberapa fitur yang menarik untuk membuat website. Banyak perusahaan IT ruby on rails yang bermunculan di seluruh dunia termasuk Indonesia.

Berikut ini kami rangkum beberapa hal menarik mengenai Ruby on Rails yang bisa bermanfaat bagi kamu:

Ruby adalah bahasa pemrograman 

Ruby adalah bahasa pemrograman berorientasi object yang dibuat oleh Yukihiro Matsumoto (Matz) pada tahun 2000. Ruby dapat digunakan di berbagai sistem operasi Linux, MacOs, dan Windows, dikembangkan secara open source. Setiap orang boleh menggunakan Ruby secara gratis, dan juga bebas untuk menduplikat, mendistribusikan bahkan melakukan perubahan / modify !

Ruby memiliki karakteristik unik secara teknis, berikut kutipan dari Matz:

"Everything you manipulate is an object, and the results of those manipulations are themselves objects"

Jadi, ketika Anda mendefinisikan sebuah variabel, maka variabel tersebut akan menjadi object dengan tipe sesuai nilai yang kamu berikan, misalnya:

variable_1 = 1
variable_2 = "ini string"

Maka:

 variable_1 akan menjadi object dari class Fixnum
 variable_2 akan menjadi object dari class String

Berikut ini adalah beberapa contoh dari code Ruby:

Membuat object dari class Car
my_car = Car.new

Menampilkan 5x "Hello Indonesia"
5.times do puts "Hello Indonesia" end


Anda bisa mencari lebih dalam tentang Ruby disini:
http://www.ruby-lang.org/id

Rails adalah Web Framework

Rails merupakan web framework yang dibuat dengan bahasa pemrograman Ruby, dikembangkan pertama kali oleh David Heinemeier Hansson pada tahun 2003.  Rails juga open source tapi dengan lisensi MIT.

Rails menggunakan konsep MVC, singkatan dari Model View Controller, sehingga memudahkan programmer dalam melakukan manajemen codes. Silakan baca mengenai MVC arsitektur di

Kemudian, kenapa sih banyak programmer yang menggunakan Ruby on rails sekarang ini ?

Berikut ini adalah alasan - alasan utamanya menurut kami:
  1. Dirancang untuk memudahkan programmer melakukan konfigurasi karena Ruby on Rails menggunakan prinsip "Convention Over Configuration". Dengan prinsip ini programmer tidak usah terlalu repot untuk melakukan seting aplikasi seperti koneksi ke database, karena sudah ada mekanisme yang disediakan dan cukup mudah karena tinggal mengisi nama tipe server database yang digunakan ( mysql / oracle / sql server / postgresql / etc ), mengatur nama database, username, password dan host .
  2. Menggunakan prinsip "DRY ( Do not Repet Yourself )", yang intinya adalah efisiensi dalam manajemen codes.
  3. Mempunyai komunitas yang besar, dengan 4855++ kontributor resmi dan ratusan ribu gems / plugin yang dibuat. Gem / Plugin bisa dikatakan sebagai "external library" yang bisa dimasukan ke aplikasi. Dengan besarnya komunitas ini, maka programmer memiliki banyak pilihan solusi ketika menghadapai permasalah. Kemudian, dengan banyaknya gems / plugins tersebut, programmer dapat lebih menghemat waktu development lagi karena tidak usah selalu membuat aplikasi dari awal, tapi bisa memanfaatkan gems / plugins tersebut sesuai keperluan.
  4. Sudah terintegrasi dengan ORM library yang beranama ActiveRecord, sehingga untuk melakukan query ke database lebih mudah. Misalnya kita punya table users dan model User, maka untuk menampilkan semua data dari table users cukup dengan User.all
  5. Memiliki Sintax yang simple tapi elegan, misalnya:
    Menampilkan waktu satu tahun lalu:
    1.year.ago
    Menampilkan waktu 2 hari dari sekarang:
    2.days.from_now
Sekian ulasan Kami soal Pengenalan Ruby on Rails, jika Anda tertarik untuk belajar Ruby on Rails silakan buka link berikut http://guides.rubyonrails.org/ atau tunggu posting kami berikutnya tentang Installasi Ruby on Rails.

Happy Codding !