sql >> Database >  >> RDS >> Mysql

Hoe een ID-veld in Sequel Pro te maken/onderhouden via Ruby en mysql2

Oké, ik geloof dat ik er eindelijk achter ben gekomen.

"Aangezien de id-waarde wordt gemaakt door MySQL, zou ik het id-veld in ruby ​​willen instellen/maken/onderhouden, zodat puts dog.id plaatst zal geen lege string zijn."

=> omdat id-waarde automatisch wordt toegewezen in MySQL, kan Ruby niet weten wat die id-waarde is en daarom zal het aanroepen van dog.id een lege string retourneren.

=> Ik moet een manier vinden om de id-waarde van een object in ruby ​​toe te wijzen, zodat deze hetzelfde is als de id die automatisch aan het object wordt toegewezen wanneer ik het in de MySQL-database invoeg.

=> Let op de verklaring die is gebruikt om Table dogs te maken:

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

het vertaalt zich naar elke hond die een id heeft (die er automatisch aan wordt toegewezen), een naam en een kleur. Er zijn twee benaderingen om na te denken over de opslag van informatie over hondenobjecten:

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

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

Ik gebruik meestal graag arrays om informatie op te slaan, maar deze keer gebruikte ik een hash (omdat wanneer ik .inspect on dog (niet Dog) aanroep, het resultaat ongeveer als volgt is:

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

wat me doet denken aan een hash-datastructuur:

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

In Ruby doe ik dit:

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

Waarbij hash_row verwijst naar de rij die het attribuut van elk dog-object bevat. Dit laat Ruby in feite weten dat elke keer dat het een nieuwe instantie van de klasse Dog instantieert, het die instantie moet gebruiken en hash[id] moet toewijzen aan "id".

Hierdoor kan ik toegang krijgen tot de waarde van "id" in ruby.

PS:Dit viel me net op. Ik zal dit antwoord waarschijnlijk bewerken nadat het een tijdje doorsijpelt.




  1. SQL-updatetrigger alleen wanneer kolom is gewijzigd

  2. hoe een geolocatiedatabase in mysql te optimaliseren voor zoeken/query's op euclidische afstand?

  3. Beste benaderingen voor gegroepeerde lopende totalen

  4. MySQL - de AVG uitwerken voor een subset van MAX-waarden