Hallo,
ich vermute mal, dass es wieder ein blöder Fehler meinerseits ist, aber
ich bin im Moment einfach ratlos.
Ich baue gerade als Fingerübung die „depot“-Anwendung aus dem Buch von
Dave T. in RoR 2.0.2 nach. Das klappte bis jetzt auch ganz gut,
nachdem ich mich mit einigen Änderungen der neuen Rails-Version vertraut
gemacht hatte.
Nun aber komme ich beim Einsatz des Flash nicht weiter.
Wißt Ihr, ob sich da auch etwas geändert hat? Ich konnte diesbezüglich
keine Verlautbarungen finden.
Ich gehe ganz genau wie in Thomas‘ Buch vor, habe also in meinem
Controller StoreController diese Zeilen:
rescue
logger.error(“Attempt to access invalid product #{params[id]}”)
flash[:notice] = ‘Invalid product’
redirect_to(:action=>‘index’)
end
Und in dem Layout der Anwendung gebe ich den Inhalt von Flash so aus:
<% if @flash[:notice] -%>
<%= @flash[:notice] %>
<% end -%>
Das Ganze führt nun aber bei mir zu folgender Fehlermeldung:
NoMethodError in Store#index
Showing layouts/store.html.erb where line #25 raised:
You have a nil object when you didn’t expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
Zeile 25 ist diese hier:
<% if @flash[:notice] -%>
Ich bin ratlos.
Wäre super, wenn jemand von Euch mir mit einem Schlag auf den Hinterkopf
weiterhelfen könnte!

Thanx und ciao,
Andreas
Hallo.
Lass mal das @-Zeichen weg (im Controller wie in der View). Das ist
uralt
und schon in 1.2.x deprecated gewesen.
Grüße
Nicolai
Am 15.02.08 schrieb Andreas F. [email protected]:
Hallo Nicolai,
Lass mal das @-Zeichen weg (im Controller wie in der View). Das ist
uralt
und schon in 1.2.x deprecated gewesen.
oh Mann, danke!
Vielleicht sollte ich dieses Buch von Dave T. doch weglegen. Es ist
zwar quasi ein Standardwerk und sehr gut geschrieben (eine Seltenheit
bei IT-Büchern …), aber ganz offensichtlich doch veralteter, als ich
dachte.
Dank Deinem Hinweis kann ich nun jedenfalls weitermachen!
So long,
Andreas
Hallo Andreas.
Ja, das ist leider wahr. Dave T. hat sich dafür entschieden, erst
die
dritte Version vom “Pickaxe Book” zu schreiben, bevor er die Rails-Serie
aktualisiert. – Ich denke, man sollte diesen Umstand einfach so
anerkennen,
dass sich in der kurzlebigen Welt von Web-Frameworks Bücher immer
weniger
zum Lernen eignen.
Viel Spaß noch!
Nicolai
PS: Gleiches gilt natürlich auch für die Instanzvariablen @params und
@session. Auch hier sollten die Methoden params und session verwendet
werden.
Ich nehme an, dass für alle anderen (also „normalen") Instanzvariablen
aber das @ erhalten bleibt, oder?
Unbedingt!
“Basically, a good rule of thumb here is don’t use an instance variable
in
your controller or view unless you created that instance variable.”
Mehr Infos gibt es im offiziellen Weblog:
Hallo Nicolai,
Ich denke, man sollte diesen Umstand einfach so
anerkennen, dass sich in der kurzlebigen Welt
von Web-Frameworks Bücher immer weniger
zum Lernen eignen.
da hast Du wohl recht. Und das, wo sich solche Bücher doch so schön im
Zug lesen lassen …
PS: Gleiches gilt natürlich auch für die Instanzvariablen @params und
@session. Auch hier sollten die Methoden params und session verwendet
werden.
Ich nehme an, dass für alle anderen (also „normalen“) Instanzvariablen
aber das @ erhalten bleibt, oder?
Betroffen sind also flash, params und session.
OK, wieder etwas gelernt.
So long,
Andreas
Zumindest im Moment aber ist “The Rails Way” sehr zu empfehlen …
geradezu biblisch.
Mal sehen, wie lange es “hält” 
Stefan
Stefan T., Stefan Tilkov’s Blog [Stefan Tilkov’s Blog]
Am 15.02.2008 um 14:22 schrieb Andreas …:
Mehr Infos gibt es im offiziellen Weblog:
Ruby on Rails — Use params, not @params
Ich sollte öfter in dieses Blog hineinschauen …
Ich empfehl eher sowas: http//del.icio.us/rss/popular/rails
Da verpasst man kaum noch was.
ciao, tom
–
Thomas R. “TomK32” Koll || http://tomk32.de || http://ananasblau.com
(NEW)
just a geek trying to change the world
Skype: TomK32 || Mail: [email protected]
Mehr Infos gibt es im offiziellen Weblog:
Ruby on Rails — Use params, not @params
Ich sollte öfter in dieses Blog hineinschauen …
Thanx,
Andreas