2016-08-04 3 views
0

Ich versuche, eine Aussage zu machen, die diese beiden Argumente enthält, aber ich bekomme immer eine "falsche Anzahl von Bind-Variablen" -Fehler. Ich habe den folgenden Code veröffentlicht. Jede Hilfe wird geschätzt.Falsche Anzahl von Bind Variablen Fehler in Rails Controller

Controller:

@open_houses = OpenHouse.upcoming.where('open_houses.start_date >= ?', Date.current, listing_id: @listing.id).order(start_date: :asc) 

Fehler:

enter image description here

+0

Ja, Sie übergeben die 2 Argumente an '.where()' .. -> 'Date.current, listing_id: @listing.id'. Es sollte 1 sein. –

+0

Sie können es schreiben: 'where ('open_houses.start_date> =? UND listing_id =?', Date.current, @ listing.id)' .. –

Antwort

2

Sie haben so etwas zu schreiben:

OpenHouse. 
    upcoming. 
    where(listing_id: @listing.id). 
    where('open_houses.start_date >= ?', Date.current). 
    order(start_date: :asm) 

Denn wenn Schienen where('open_houses.start_date >= ?', Date.current, listing_id: @listing.id) sehen es where('open_houses.start_date >= ? AND listing_id = :listing_id', Date.current, listing_id: @listing.id) erwartet, aber ich denke, Das erwartest du nicht.

Verwandte Themen