Sử dụng gem Ransack để search trong rails

Tram Ho

Giới thiệu

Mình xin giới thiệu về cách search bằng gem Ransack qua quá trình mà mình đã áp dụng vào project của bản thân và 1 số options được sử dụng

Sử dụng gem trong project

Đầu tiên ta thêm gem Ransack vào Gemfile:

Sau đó chạy

Ở đây mình có dữ liệu của 1 model user với các trường name, email, address,…

Sau khi cài đặt xong gem, ta vào model của User thêm scope

Tiếp theo ở Controller User ta có phương thức Index và search_params:

Ở đây ta search theo user_name và email, trên Index hiển thị 5 bản ghi trên 1 trang.

Tiếp theo ở views/users/index.html.erb ta thêm:

Như vậy ta có thể search user qua user_name và email.

Các option

  • eq(equals): Trả về kết quả gồm tất cả bản ghi có giá trị chính xác bằng giá trị đã cho.
  • matches: Trả về kết quả gồm các bản ghi có giá trị giống với giá trị đã cho.
  • It(less than): Trả về kết quả gồm các bản ghi có giá trị nhỏ hơn giá trị đã cho.
  • in: Trả về kết quá gồm các bản ghi có giá trị nằm trong khoảng giá trị đã cho.
  • cont: Trả về kết quả gồm các bản ghi có giá trị chứa các giá trị đã cho.
  • start: Trả về kết quả gồm các bản ghi có giá trị bắt đầu là các giá trị đã cho.
  • end: Trả về kết quả gồm các bản ghi có giá trị kết thúc là các giá trị đã cho.

Và nhiều option khác.

Chia sẻ bài viết ngay

Nguồn bài viết : viblo.asia