Мои данные в основном имеют галерею (-ы) и много изображений, а изображения принадлежат галерее.таблица рисунков имеет внешний_ключ "gallery_id".
Хотя раньше я уже использовал ассоциации has_many и own_to, поэтому я не уверен, что делаю неправильно.
Это мои соответствующие модели:
class Gallery < ActiveRecord::Base
attr_accessible :name
has_many :pictures
belongs_to :home
end
class Picture < ActiveRecord::Base
belongs_to :gallery
validates :image, :presence => true
mount_uploader :image, ImageUploader
end
Если я сделаю это:
gallery = Gallery.create(:name => 'some name')
picture = Picture.create(:name => 'some name' , :image => 'some_image')
picture.gallery = gallery
это правда:
picture.gallery == @gallery
но этоisnt
gallery.pictures == [ picture ]
, поскольку gallery.pictures возвращает пустой массив.
С другой стороны, если я создаю изображение таким образом, все работает, как ожидалось:
picture = Picture.create(:name => 'some name' , :image => 'some_image', :gallery_id => gallery)
Почему?Что я делаю не так?Я использую Rails 3.1.1 и sqlite