PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

UUID yang dapat diurutkan dan menimpa ActiveRecord::Base

Pertama-tama, first dan last tidak sesederhana yang Anda pikirkan:Anda benar-benar mengabaikan limit argumen yang didukung oleh kedua metode tersebut.

Kedua, scope sedikit lebih dari cara yang bagus untuk menambahkan metode kelas yang dimaksudkan untuk mengembalikan kueri. Cakupan Anda menyalahgunakan scope karena mereka mengembalikan contoh model tunggal daripada kueri. Anda tidak ingin menggunakan scope sama sekali, Anda hanya mencoba mengganti first dan last metode kelas jadi mengapa Anda tidak menimpanya saja? Anda harus menimpanya dengan benar dan itu akan membutuhkan membaca dan memahami sumber Rails sehingga Anda meniru dengan benar apa find_nth_with_limit melakukan. Anda ingin mengganti second , third , ... dan metode konyol lainnya saat Anda melakukannya.

Jika Anda tidak merasa benar tentang mengganti first dan last (hal yang baik IMO), maka Anda dapat menambahkan cakupan default untuk memesan hal-hal yang diinginkan:

default_scope -> { order(:created_at) }

Tentu saja, cakupan default datang dengan serangkaian masalah mereka sendiri dan menyelipkan hal-hal ke dalam ORDER BY seperti ini mungkin akan memaksa Anda untuk memanggil reorder kapan saja Anda benar-benar ingin menentukan ORDER BY; ingat bahwa beberapa panggilan ke order tambahkan ketentuan pemesanan baru, mereka tidak menggantikan yang sudah ada.

Atau, jika Anda menggunakan Rails6+, Anda dapat menggunakan implicit_order_column Markus solusi untuk menghindari semua masalah yang dapat disebabkan oleh cakupan default.

Saya pikir Anda akan tentang ini semua salah. Setiap kali saya melihat M.first Saya berasumsi bahwa sesuatu telah dilupakan. Memesan barang dengan id sangat tidak berguna sehingga Anda harus selalu tentukan secara manual urutan yang Anda inginkan sebelum menggunakan metode seperti first dan last .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri Zona Waktu Optimalkan/Indeks

  2. Cara melintasi struktur struktur pohon hierarkis ke belakang menggunakan kueri rekursif

  3. Terhubung ke database PostgreSQL pada wadah Docker

  4. Apa yang setara dengan CHARINDEX (SQL SERVER) di POSTGRESQL?

  5. Bagaimana cara menambahkan kunci ke nilai array JSON?