/ / Vnorené koľajnice dynamického poľa - ruby-on-rails, polia, ruby-on-rails-3, multidimenzionálne pole

Vnorené dynamické matice - ruby ​​na koľajniciach, poliach, ruby ​​na koľajniciach-3, multidimenzionálnom poli

Vytvoril som pole

steps = [{"title" =>"abc","content" =>"click this", "target" => "bca"}]
tours = ["id"=>"tour", "steps:" => "#{steps}"]
puts tours

Získava sa nasledujúci výstup:

{"id"=>"tour", "steps:"=>"[{"title"=>"abc", "content"=>"click this", "target"=>"bca"}]"}

Štruktúra výstupu je správna, ale tieto nechcem vo výstupe. Čo mám robiť, aby som ich odstránil , Vďaka!

odpovede:

0 pre odpoveď č. 1

Зелёный má pre vás priamu odpoveď, je tu však naliehavejšia otázka, na ktorú by som chcel upozorniť - myslím si, že ste zmätení medzi {hashes} a [arrays]

--

Pole je množina neusporiadaných údajov:

array = [3, 4, 5, 6, 0, 5, 3, "cat", "dog"]

Polia sa používajú hlavne na nesekvenčné zhromažďovanie údajov, dobrým príkladom je product_ids v nákupnom košíku.

Polia sa dajú identifikovať iba podľa umiestnenia údajov vo vnútri poľa:

array[1] # -> 4
array[2] # -> 5

--

Haš je zbierka key:value pary:

hash = {name: "Greg", type: "cat"}

Hashty sa používajú, keď chcete priradiť viac hodnôt k jednému údaju, a je možné ich vyvolať odkazom na „kľúč“ hash:

hash["name"] #-> Greg
hash["type"] #-> cat

Môžete vytvoriť niekoľko hashov:

 hash_array = [{name: "Greg", type: "cat"}, {name: "Sulla", type: "Dog"}]

... problém je v tom, že haše nemôžete volať priamo - musia byť skrz pole:

 hash_array["name"] # -> error
hash_array[0]["name"] #-> "Greg"

Vo vašom príklade teda použijem nasledovné:

steps = {"title" =>"abc","content" =>"click this", "target" => "bca"}
tours = {id: "tour", steps: steps}
tours.inspect #-> { id: "tour", steps: { "title" => "abc", "content" => "click this", "target" => "bca" }

2 pre odpoveď č. 2

V rubíne "#{}" zavolajte to_s metóda na objekte. Môžete to skontrolovať spustením nasledujúceho kódu: steps.to_s.

Stačí použiť:

tours = ["id"=>"tour", "steps:" => steps]

Pretože toto:

"[{"title"=>"abc", "content"=>"click this", "target"=>"bca"}]"

je reťazcové vyjadrenie:

[{"title" =>"abc","content" =>"click this", "target" => "bca"}]