Как сохранить и просмотреть отношения has_many с двумя разными моделями, которые наследуют STI?Использование has_many с множественными типами моделей через STI
У меня есть базовая модель для проектов следующим образом:
class Project < ActiveRecord::Base
attr_accessible :slug,
:category_id,
:description,
:name,
:visible,
:note,
:contractor, :contractor_url,
:date_complete, :architect, :architect_url,
:building_year,
:project_type,
:address, :city, :state, :country,
:pictures,
:photo_credit
has_many :pictures, :order=>:id, :dependent => :destroy
Picture.rb:
class Picture < ActiveRecord::Base
attr_accessible :project_id, :image, :caption, :cover, :dimensions
belongs_to :project
И используя STI У меня есть домашняя страница Продукты, которые отображают подмножество проектов и специфические на домашнюю страницу:
class HomepageItem < Project
attr_accessible :slug,
:name,
:visible,
:note,
:pictures,
:photo_credit
has_many :pictures, :order=>:id, :dependent => :destroy
Это приводит к ошибке, ожидающей появления нового столбца на фотографияхвместо project_id
PG::UndefinedColumn: ERROR: column pictures.homepage_item_id does not exist
I believe this should be looking on the pictures.project_id column.
Примечание: Без has_many, определенной в HomepageItem, элементы сохраняются, но никакие картинки не будут созданы. Также это проект Rails 3.2.22.
Спасибо, я все еще получаю висит наследование Rails, и я не мог найти правильный набор ключевых слов для ответа. Где я могу спросить, вы нашли документы для этого? – Nilloc
Привет, Rails официальные документы были действительно хорошими http://guides.rubyonrails.org/association_basics.html и http://apidock.com/rails/ActiveRecord/Associations/AssociationCollection Недавно я прошел курс рубинов по рельсам coursera.org из Университета Джона Хопкинса, это помогло мне лучше понять различные концепции. Дайте ему идти, если вы свободны, кстати, это бесплатно. https://www.coursera.org/specializations/ruby-on-rails –