sql >> Databasteknik >  >> RDS >> Mysql

Hur man skapar/underhåller ID-fält i Sequel Pro via Ruby och mysql2

Okej, jag tror att jag äntligen kom på det här.

"Eftersom id-värdet skapas av MySQL, skulle jag vilja ställa in/skapa/underhålla id-fältet i ruby ​​så att puts dog.id kommer inte att vara en tom sträng."

=> eftersom id-värde tilldelas automatiskt i MySQL Ruby har inget sätt att veta vad det id-värdet är och därför kommer att anropa dog.id returnera en tom sträng.

=> Jag behöver hitta ett sätt att mappa ett objekts id-värde i ruby ​​så att det är samma som det id som automatiskt tilldelas objektet när jag infogar det i MySQL-databasen.

=> Var uppmärksam på uttalandet som används för att skapa bordshundar:

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

det översätts till att varje hund skapa har ett id (som automatiskt tilldelas den), ett namn och en färg. Det finns två sätt att tänka på lagring av hundföremåls information:

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

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

Jag gillar vanligtvis att använda arrayer för att lagra information men den här gången använde jag en hash (eftersom när jag ringer .inspect på hund (inte Dog) blir resultatet ungefär så här:

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

vilket får mig att tänka på en hashdatastruktur:

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

I Ruby gör jag så här:

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

Där hash_row refererar till raden som innehåller varje hundobjekts attribut. Detta låter i princip Ruby veta att varje gång den instansierar en ny instans av klassen Dog ska den utnyttja den instansieringen och mappa hash[id] till "id".

Genom att göra detta får jag tillgång till värdet av "id" i ruby.

PS:Det här föll mig precis. Jag kommer förmodligen att redigera det här svaret efter att det har slocknat ett tag.




  1. Hur man ändrar eller tar bort ett specifikt JSON-objekt från JSON-arrayen lagrad i jsonb-kolumntypen i PostgreSQL med where-sats?

  2. PHP PDO klass programmering:Dödligt fel:Anrop till en medlemsfunktion fetchAll() på boolean

  3. Undviker kapslade frågor

  4. Obs:Odefinierat index:bild - kan inte hitta felet