ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Bug in servialized Hash?
BeitragVerfasst: 14 Dez 2015, 17:30 
Offline
Geselle

Registriert: 15 Jun 2008, 14:57
Beiträge: 141
Ich glaub ich hab einen Fehler in serialize gefunden:


1
2
3
4
5
6
<%= map = {'y' => 'x1', 'x1' => 'y'} %><br/> #=> {"y"=>"x1", "x1"=>"y"}
<%= mapb = r['sub'] %><br/> #=> {"y"=>"x1", "x1"=>"y"}
<%= map.class %><br/> #=> Hash
<%= mapb.class %><br/> #=> Hash
<%= map.keys %><br/> #=> ["y", "x1"]
<%= mapb.keys %><br/> #=> #=> NoMethodError: undefined method `keys' for []:Array


mapb ist hierbei der serializierte Hash. Bei diesem existiert jedoch die methode keys nicht. Vieleicht kann mir jemand mit einem woarkarround helfen.
hier noch der yaml code aus der DB:



1
2
3
4
5
6
7
8
9
10
11
12
13

---
reorder:
-
var: 'x1'
id: 3
sub:
y: 'x1'
x1: 'y'
-
var: 'x2'
id: 3
sub: []


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bug in servialized Hash?
BeitragVerfasst: 14 Dez 2015, 20:24 
Offline
Lehrling
Benutzeravatar

Registriert: 28 Feb 2012, 21:58
Beiträge: 86
Wohnort: NRW
Heyho,

also für mich sieht das aus als ob mapb eben kein Hash ist sondern ein Array, sonst würde der Ruby Interpreter ja nicht denn Fehler auswerfen.
Und ich denke mal das auch beim einlesen der Yaml Datei kein Fehler ist sondern an deiner Yaml Datei selber oder wie du es verarbeitest.

Weil wenn ich mir deine Verarbeitung anschaue und denn Output von dem Yaml String bekomme ich auch bei mir ein Array heraus wenn ich die falsche stelle aus dem Output des Yaml String verwende.
Also frage ich auf welches Sub greift den dein r['sub'] ?

Aber wenn ich es so mache dann nicht ;)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

require "yaml"
yaml_string = "reorder:
-
var: 'x1'
id: 3
sub:
y: 'x1'
x1: 'y'
-
var: 'x2'
id: 3
sub: []
"

bar = YAML.load(yaml_string)
#puts bar.class
#puts bar

foo = bar["reorder"][0]['sub']
puts foo.class
puts foo
puts foo.keys


und ich bekomme das hier dann raus:


1
2
3
4
5

Hash
{"y"=>"x1", "x1"=>"y"}
y
x1


Also muss irgendwo in deiner Routine was falsch ablaufen :S

VG Manchotix


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bug in servialized Hash?
BeitragVerfasst: 14 Dez 2015, 21:48 
Offline
Geselle

Registriert: 15 Jun 2008, 14:57
Beiträge: 141
Danke für den denkanstoß ;)
hatte beim zweiten sub übersehen, dass da ne leere arrayklammer ist und war verwirrt weil mir die class abfrage "Hash" zurückliefert... funtzt jetzt einwandfrei^^


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: