Problem z zapytaniem do bazy

Witam,
przerabiam sobie jedną z książek do Railsów (O’Reilly) gdzie autor pokazuje jak zrobić aplikację Photo Share. Wszystko szło bardzo dobrze, dopóki nie natknąłem się na problem. Otóż leci mi błąd na zapytaniu do bazy (postgres) - PGError: ERROR: argument of WHERE must be type boolean, not type integer
: SELECT * FROM slides WHERE (slideshow_id) ORDER BY position DESC LIMIT 1

Przejrzałem kod, nic niepokojącego nie wykryłem. Podejrzewam, że gdzieś “pod spodem” Railsy generują złe zapytanie (wersja Railsów 1.2.3) - czy ktoś spotkał się z takim problemem?

Dodam że w książce autor korzysta z mysql’a - ja postawiłem aplikację na postgresie.

screen z błędem

Jacek

Wklej jeszcze do posta kod aplikacji, ktory odpowiada za zapytanie do bazy.

Oto metoda w której wywala błąd:

def add_photo slideshow_id = session[:slideshow].id photo_id = params[:id].split("_")[1] slide = Slide.new( ) slide.photo_id = photo_id slide.slideshow_id = slideshow_id if !slide.save flash[:notice] = 'Error: unable to add photo.' end @slideshow = Slideshow.find(slideshow_id) session[:slideshow] = @slideshow render_partial 'show_slides_draggable' end
Linia 82, która rzuca bład to if !slide.save

Jacek

A jak wyglada klasa Slide oraz model Photo i Slideshow?

sprawdź czy slideshow_id jest typu Fixnum

na przykład w drugiej linijce walnij: raise slideshow_id.class.name

Drogus:
Brałem to też pod uwagę, sprawdziłem i jest to Fixnum

tusla:
Proszę bardzo :slight_smile:

Slide

class Slide < ActiveRecord::Base belongs_to :slideshow belongs_to :photo acts_as_list :scope => "slideshow_id" end
Photo

class Photo < ActiveRecord::Base has_many :slides validates_presence_of :filename has_and_belongs_to_many :categories end
Slideshow

class Slideshow < ActiveRecord::Base has_many :slides, :order => :position end

Jacek

Pewnie tu jest błąd:

zamiast:


class Slide < ActiveRecord::Base
belongs_to :slideshow
belongs_to :photo
acts_as_list :scope => “slideshow_id”
end

powinno być:


class Slide < ActiveRecord::Base
belongs_to :slideshow
belongs_to :photo
acts_as_list :scope => :slideshow_id
end

Dokładnie tutaj był błąd, dzięki za pomoc i za poświęcony czas.
Teraz czas na kolejne kroki w Railsach :wink:

Pozdrawiam,
Jacek Lis

Good luck!

Jestem na tym samym etapie. Ale problem mam troche inny: nie dziala mi przerzucanie slajdow metoda show_slides_draggable. Caly kod mam przepisany dokladnie tak jak w ksiazce.

Dla ulatwienia dodam ze sprawdzalem na wszystkich przegladarkach. Plik ze skryptem jest oczywiscie na swoim miejscu. Czy ktos sie obil o taki problem?