sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit/udržovat pole ID v Sequel Pro přes Ruby a mysql2

Dobře, věřím, že jsem na to konečně přišel.

"Vzhledem k tomu, že hodnotu id vytváří MySQL, chtěl bych nastavit/vytvořit/udržovat pole id v ruby ​​tak, aby puts dog.id nebude prázdný řetězec."

=> protože hodnota id je automaticky přiřazena v MySQL, Ruby nemá žádný způsob, jak zjistit, jaká je tato hodnota, a proto volání dog.id vrátí prázdný řetězec.

=> Potřebuji najít způsob, jak namapovat hodnotu id objektů v ruby ​​tak, aby byla stejná jako id automaticky přiřazená objektu, když jej vložím do databáze MySQL.

=> Věnujte pozornost prohlášení použitému k vytvoření Table dogs:

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

překládá se, že každý psí výtvor má id (které je mu automaticky přiřazeno), jméno a barvu. Existují dva přístupy k uvažování o ukládání informací o psích objektech:

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

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

Obvykle rád používám pole k ukládání informací, ale tentokrát jsem použil hash (protože když zavolám .inspect on dog (ne Dog), výsledek je něco takového:

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

což mě nutí přemýšlet o struktuře hash dat:

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

V Ruby dělám toto:

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

Kde hash_row odkazuje na řádek, který obsahuje atribut každého objektu psa. To v podstatě dává Ruby vědět, že pokaždé, když vytvoří novou instanci třídy Dog, měla by se na tuto instanci napojit a namapovat hash[id] na "id".

To mi umožní přístup k hodnotě "id" v ruby.

PS:To mě právě napadlo. Pravděpodobně tuto odpověď upravím poté, co bude chvíli prosakovat.




  1. MySQL workbench :Jak exportovat databázi mysql do souboru .sql?

  2. Jak mohu použít $_get s funkcí build_categories_options

  3. Vlákno bylo zavěšeno na java.net.SocketInputStream.socketRead0 (Nativní metoda), ví někdo, co se stalo?

  4. MySQL:Potřebuji zobrazit od 1 do maximálně n příspěvků od každého uživatele za každý den