Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Rel tidak melewati Kueri DB pada formulir pencarian

Apakah Anda yakin Anda mendefinisikan metode kelas search di item.rb ? Penyebab kesalahan mengatakan bahwa tidak ada search metode yang ditentukan pada Item kelas. Namun, coba jika yang berikut ini cocok untuk Anda.

Anda hanya ingin mencari jika formulir sedang dikirimkan. Anda dapat menggunakan present? metode untuk mengetahui apakah istilah penelusuran benar-benar lulus.

Ubah pengontrol Anda menjadi

def index
  @items = params[:search].present? ? Item.search(params[:search]) : Item.all
end

Perhatikan bahwa suatu objek present hanya jika tidak kosong. Ini berguna karena jika seseorang memasukkan " " dalam formulir, Anda tidak boleh mencari ruang kosong di nombre tetapi tampilkan semua catatan dalam items tabel.

Jika formulir tidak dikirimkan, Item.all akan dieksekusi.

Ubah metode kelas Anda menjadi

def self.search(search_term)
  where("nombre LIKE ?", "%#{search_term}%")
end

Anda tidak memerlukan Item.where karena kelas Item adalah konteks saat ini di mana where metode disebut. Perhatikan bahwa saya telah mengubah polanya menjadi %#{search_term}% karena Anda tidak selalu ingin mencocokkan string yang diakhiri dengan beberapa pola.

Semoga ini bisa membantu!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan koneksi MYSQ &MVC3 SQL \ ProviderManifestToken tapi saya menggunakan MySQL

  2. PHP - MYSQL - server basis data uji

  3. Permintaan PHP dan MySQL, gunakan PHP untuk mengonversi baris ke kolom

  4. Tomcat7:Tidak dapat memuat kelas driver JDBC [com.mysql.jdbc.Driver]

  5. cara menghindari kebuntuan di mysql