неопределенный метод `event_id' при использовании ассоциации принадлежности_к/имеет_многие

Я создаю сайт, на котором есть события. Каждое событие действует как галерея и has_many изображений. Каждое изображение belongs_to и событие.

Я следил за жемчужиной RailsCast #253 CarrierWave. При попытке добавить новое изображение пишет

неопределенный метод `event_id' для # Изображение:0x7302438

<%= form_for @image, :html => {:multipart => true} do |f| %>

<%= f.error_messages %>

<%= f.hidden_field :event_id %>

<%= f.label :title %><br />

<%= f.text_field :title %>

Вот мой образ.rb

class Image < ActiveRecord::Base

attr_accessible :event_id, :title, :image

validates :title, :image, :presence => :true, :uniqueness => :true

belongs_to :event

mount_uploader :image, ImageUploader

end

и событие.рб

class Event < ActiveRecord::Base

attr_accessible :title, :date, :about

validates :title, :about, :date, :presence => :true

validates :title, :uniqueness => :true

has_many :images

extend FriendlyId

friendly_id :title, use: [:slugged, :history]

end


person Jeremy Becker    schedule 04.06.2013    source источник
comment
И существует ли event_id в таблице images?   -  person Matt    schedule 04.06.2013
comment
Да. Я создал миграцию и запустил db:migrate   -  person Jeremy Becker    schedule 05.06.2013
comment
Разве столбец не создается ассоциацией автоматически?   -  person Jeremy Becker    schedule 06.06.2013
comment
Столбец в таблице не может быть создан ассоциацией, но это должна была сделать миграция, опубликуйте свой код миграции. Вы дважды проверяли саму базу данных, чтобы быть полностью уверенным, что столбец существует?   -  person Matt    schedule 06.06.2013
comment
Я всегда думал, что ассоциация автоматически генерирует столбец. Но опять же, я нуб. Проблема, нет столбца таблицы. Спасибо @мат!   -  person Jeremy Becker    schedule 06.06.2013


Ответы (1)


Запуск этого в миграции сработал. Столбец не добавлен.

def up
   change_table :images do |t|
      t.references :event
   end
end
person Jeremy Becker    schedule 06.06.2013