Я пытаюсь создать базу данных URL-адресов (ссылок). У меня есть модель категории, которая имеет и относится ко многим ссылкам.
Вот миграция, которую я запустил:
class CreateLinksCategories < ActiveRecord::Migration
def self.up
create_table :links_categories, :id => false do |t|
t.references :link
t.references :category
end
end
def self.down
drop_table :links_categories
end
end
Вот модель Link:
class Link < ActiveRecord::Base
validates :path, :presence => true, :format => { :with => /^(#{URI::regexp(%w(http
https))})$|^$/ }
validates :name, :presence => true
has_one :category
end
Вот модель категории :
class Category < ActiveRecord::Base
has_and_belongs_to_many :links
end
И вот ошибка, с которой консоль отскочила, когда я попытался связать первую ссылку с первой категорией:
>>link = Link.first
=> #<Link id: 1, path: "http://www.yahoo.com", created_at: "2011-01-10...
>>category = Category.first
=> #<category id : 1, name: "News Site", created_at: "2011-01-11...
>>link.category << category
=> ActiveRecord::StatementInvalid: SQLite3::Exception: no such column :
categories.link_id:
Мои ассоциации ошибочны или я что-то упустил в базе данных? Я ожидал, что он найдет таблицу links_categories. Любая помощь приветствуется.