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

Cara membuat/mempertahankan bidang ID di Sequel Pro melalui Ruby dan mysql2

Oke, saya percaya saya akhirnya menemukan ini.

"Karena nilai id sedang dibuat oleh MySQL, saya ingin mengatur/membuat/mempertahankan bidang id di ruby ​​sehingga puts dog.id tidak akan menjadi string kosong."

=> karena nilai id ditetapkan secara otomatis di MySQL Ruby tidak memiliki cara untuk mengetahui nilai id itu dan oleh karena itu memanggil dog.id akan mengembalikan string kosong.

=> Saya perlu menemukan cara untuk memetakan nilai id objek di Ruby sehingga sama dengan id yang secara otomatis ditetapkan ke objek ketika saya memasukkannya ke dalam database MySQL.

=> Perhatikan pernyataan yang digunakan untuk membuat Table dogs:

CREATE TABLE dogs(
id INT PRIMARY KEY AUTO_INCREMENT,
name TEXT,
color TEXT
);

itu diterjemahkan ke setiap anjing membuat memiliki id (yang secara otomatis ditetapkan untuk itu), nama, dan warna. Ada dua pendekatan untuk memikirkan penyimpanan informasi objek anjing:

dog = { "id" => 'some integer', "name" => "simba", "color" => "grey" }

dog = [1, "simba", "grey"]

Saya biasanya suka menggunakan array untuk menyimpan informasi tetapi kali ini saya menggunakan hash (karena ketika saya memanggil .inspect pada anjing (bukan Anjing) hasilnya seperti ini:

#<Dog:0x007fbf74c55068 @name="samba", @color="grey">

yang membuat saya berpikir tentang struktur data hash:

{ "id"=> 1, "name"=>"simba", "color"=>"grey"}

Di Ruby, saya melakukan ini:

def row_hash(hash)
  hash={}
  Dog.new(hash[name], hash[color]).tap { |id| id = hash[id] }
end

Di mana hash_row mengacu pada baris yang menyimpan atribut setiap objek anjing. Ini pada dasarnya membuat Ruby tahu bahwa setiap kali membuat instance baru dari kelas Dog, ia harus memanfaatkan instance tersebut dan memetakan hash[id] ke "id".

Melakukan ini memungkinkan saya untuk mengakses nilai "id" di Ruby.

PS:Ini baru terpikir oleh saya. Saya mungkin akan mengedit jawaban ini setelah meresap sebentar.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gagal menggunakan transaksi di Quill untuk MEMASUKKAN objek relasional satu-ke-banyak

  2. mendapatkan mysql_insert_id() saat menggunakan ON DUPLICATE KEY UPDATE dengan PHP

  3. perbarui di mysql_query terkadang kembalikan nol

  4. Alat impor Excel CSV

  5. Apakah ada SQLite yang setara dengan DESCRIBE [tabel] MySQL?