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