Witam.
Jestem zupelnie poczatkujacym userem Railsow.
Zakupilem sobie ksiazke “Rails. Wprowadzenie” i realizuje po kolei przyklady.
Jestem na rozdziale nt. Active Record.
Baza danych stworzona, wykonuje komendy w konsoli Rails:
show.Slideshow.find 1
…(wypisuje odpowiedni rekord z bazy)show.slides.each {|slide| puts slide.photo.filename}
i tu nastepuje szereg bledow zaczynajacych sie od:
NoMethodError: undefined method ‘photo’ for #Slide:0x4799bc8
from (i tu lista sciezek do plikow konfiguracyjnych activeRecord, w ktorych nic nie zimenialem.)
Program wykonany poprawnie powinien wypisac liste plikow z bazy.
I w tym momencie koncza mi sie pomysly, bo probowalem w tej komendzie wpisywac nazwy wielkimi literami, dobierac nazwy pol w bazie (np zamiast ‘photo’ pisalem ‘photo_id’) itd. Nic to jednak nie dalo.
Bede wdzieczny za jakies naprowadzenie na przyczyne tego bledu.
#############################################################
Dodatkowo, wklejam tutaj zawartosci pliku ‘slide.rb’
#############################################################
class Slide < ActiveRecord::Base
belongs_to :slideshows
acts_as_list :scope => “slideshow_id”
belongs_to :photos
end
#############################################################
i ‘photo.rb’
#############################################################
class Photo < ActiveRecord::Base
validates_presence_of :filename
has_many :slides
has_and_belongs_to_many :categories
end
#############################################################
#############################################################
‘slideshow.rb’
#############################################################
class Slideshow < ActiveRecord::Base
has_many :slides, :order => :position
end
i jeszcze migracje:
#############################################################
create_slides.rb
#############################################################
class CreateSlides < ActiveRecord::Migration
def self.up
create_table :slides do |t|
t.column “position”, :integer
t.column “photo_id”, :integer
t.column “slideshow_id”, :integer
end
end
def self.down
drop_table :slides
end
end
#############################################################
create_photos.rb
#############################################################
class CreatePhotos < ActiveRecord::Migration
def self.up
create_table :photos do |photo|
photo.column “filename”, :string
end
end
def self.down
drop_table :photos
end
end