Cookies werden nicht gespeichert

Hi,

ich entwickel gerade eine eine RubyOnRails Webseite mit Ruby 1.8 und
Rails 2.0.2.

Ich erstelle an der einen Stelle ein Product object und speicher es in
ein Cookie

Code:

def create
@image = Image.new(params[:image])

  if @image.save
    @product = Product.new
    @product.image_id = @image.id
    @product.order_id = @order.id
    @product.save
    cookies[:product_id] = @product.id.to_s
    flash[:notice] = 'Image was successfully created.'
    format.html {redirect_to('/karte/waehlen')}

Dann redirecte ich zum karte controller und waehlen action

Der karte controller sieht dann so aus.

Code:

class KarteController < ApplicationController
def waehlen
@product = Product.find(cookies[:product_id])
@image = Image.find(@product.image_id)
end
end

dort lese ich dir product id wieder aus.

Die waehlen.html.erb möchte das dann ausgeben

Code:

<%= image_tag(@image.filename, :size => "190x153") %>

Leider bekomme ich eine

Code:

NoMethodError

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.filename

Extracted source (around line #12):

9:
10:
11:


12: <%= image_tag(@image.filename, :size => “190x153”) %>

Ich entwickel auf Windows, habe mal im Cookie Ordner geschaut, da wird
garkein Cookie angelegt. Daher auch das nil object.

Warum legt er das Cookie nicht an? Muss ich da noch extra weiß
einstellen? Kann das deaktiviert sein?

Auch wenn es nur was triviales ist, bin ich über jede Hilfe dankbar,
komme nicht weiter an dieser Stelle.

Gruß

Adam

Moin Adam,

also ich speichere folgendermaßen meine Cookies:

cookies[:visitor_id] = { :value => “#{visitor.id}”,
:expires => 2.days.from_now
}

Evtl. liegt da bei der Fehler, das deine erste Speicherung
eher die Variante ist, wie man normalerweise Daten aus
dem Cookie ausliest.

Viele
Grüße,
Daniel

Am 18.11.2008 um 09:09 schrieb Adam M.:

Daniel Boekhoff wrote:

Moin Adam,

also ich speichere folgenderma�en meine Cookies:

cookies[:visitor_id] = { :value => “#{visitor.id}”,
:expires => 2.days.from_now
}

Evtl. liegt da bei der Fehler, das deine erste Speicherung
eher die Variante ist, wie man normalerweise Daten aus
dem Cookie ausliest.

Viele
Gr��e,
Daniel

Am 18.11.2008 um 09:09 schrieb Adam M.:

Naja, ich will mal sagen, das war so ziemlich die Lösung.

Danke Daniel!

Hallo Adam,

ich will mal an der Stelle nicht unken, ich denke aber, dass es keine
gute Idee ist, auch nur irgendwelche Daten in einem Cookie zu speichern.
Es ist prinzipiell IMHO schon eine schlechte Idee Daten auch nur in der
vermeintlich “sichereren” Session auf dem Server abzulegen, aber hier
gibst Du Deinen Nutzern die Möglichkeit, Deine Applikation gleich mal
auf die ganze einfache anzugreifen.

Peate Paland und Roland M. hatten hier vor kurzem
(dankenswerterweise) auf folgende Guides hingewiesen:

http://guides.rubyonrails.org/security.html

Vielleicht für Dich ganz interessant und an dieser Stelle relevant. Ich
(und das ist bestimmt nicht das Maß der Dinge) würde in einer Session
(und auch nicht direkt im Cookie) maximal eine eindeutige ID
hinterlegen, alle relevanten Daten dann in der DB.

Aber das ist natürlich Dir überlassen.

Beste Grüße

Jan Rösner
jan [ a t ] roesner [ d o t ] it

Am Dienstag, den 18.11.2008, 14:46 +0100 schrieb Adam M.:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs