Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak utworzyć/utrzymać pole ID w Sequel Pro przez Ruby i mysql2?

Dobra, wierzę, że w końcu to rozgryzłem.

„Ponieważ wartość id jest tworzona przez MySQL, chciałbym ustawić/utworzyć/utrzymać pole id w ruby ​​tak, aby puts dog.id nie będzie pustym ciągiem."

=> ponieważ wartość id jest automatycznie przypisywana w MySQL, Ruby nie ma możliwości poznania tej wartości i dlatego wywołanie dog.id zwróci pusty ciąg.

=> Muszę znaleźć sposób na mapowanie wartości identyfikatora obiektu w ruby ​​tak, aby był taki sam, jak identyfikator automatycznie przypisany do obiektu po wstawieniu go do bazy danych MySQL.

=> Zwróć uwagę na stwierdzenie używane do tworzenia psów stołowych:

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

przekłada się na to, że każdy pies ma swój identyfikator (który jest mu automatycznie przypisywany), imię i kolor. Istnieją dwa podejścia do myślenia o przechowywaniu informacji o przedmiotach psa:

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

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

Zwykle lubię używać tablic do przechowywania informacji, ale tym razem użyłem skrótu (ponieważ kiedy wywołuję .inspect on dog (nie Dog), wynik jest mniej więcej taki:

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

co kojarzy mi się z haszującą strukturą danych:

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

W Ruby robię to:

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

Gdzie hash_row odnosi się do wiersza, który zawiera atrybut każdego obiektu psa. Dzięki temu Ruby wie, że za każdym razem, gdy tworzy nową instancję klasy Dog, powinien połączyć się z tą instancją i zmapować hash[id] na "id".

Dzięki temu mogę uzyskać dostęp do wartości „id” w ruby.

PS:Po prostu przyszło mi to do głowy. Prawdopodobnie edytuję tę odpowiedź po tym, jak przez jakiś czas będzie się przesiąkać.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Symfony+Doctrine:Poprawna składnia YAML dla domyślnej wartości pola logicznego

  2. sql odrębne, uzyskując 2 kolumny

  3. Konwersja ciągu na typ mySql DECIMAL

  4. Tworzysz niestandardową funkcję MySQL?

  5. Jak zoptymalizować ogromne zapytania z powtarzającymi się podzapytaniami