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 :




 










Tidak ada komentar:

Posting Komentar