2
class Photo < ActiveRecord::Base 
    has_many :boosts, class_name: BoostedPhoto 
    ... 
end 

class BoostedPhoto < ActiveRecord::Base 
    belongs_to :photo 
end 

Вот как она у меня настроить так далеко, но когда я пытаюсь сделать это в консоли:рельсы отношения один-ко-многим; не может создавать дочерние объекты?

photo = Photo.first 
photo.boosts.create(title: 'testing') 

я получаю следующие результаты

(0.3ms) begin transaction 
(0.1ms) rollback transaction 
ActiveRecord::UnknownAttributeError: unknown attribute: photo_id 

Искал вверх, как чтобы делать отношения в течение нескольких часов, и я думаю, что я мог бы пропустить что-то действительно простое ... извините за новый вопрос, но я начинаю отвлекать свои волосы от разочарования!

+0

У вас есть столбец с именем 'photo_id' в' BoostedPhoto'? Этот столбец используется рельсами для сохранения ассоциации. – klump

ответ

2

Должно быть столбец внешнего ключа в таблице boosted_photos. Общее правило таково положить belongs_to ассоциации в модели таблицы, которые имеют внешний ключ, здесь BoostedPhoto

После этого должно работать,

photo = Photo.first 
photo.boosts.create(title: 'testing') 
+0

Работал отлично для меня. Кажется, что photo.boosts.build (название: «тестирование») также будет работать. Спасибо. – Daniel