У меня есть отношение многие-к-многим между досье и контактом, и поэтому они имеют отношение has_and_belongs_to_many:
class Dossier < ActiveRecord::Base
has_and_belongs_to_many :contacts
и
class Contact < ActiveRecord::Base
has_and_belongs_to_many :dossiers
В методе show контроллера Dossiers у меня есть это:
@dossier = current_user.company.dossiers.find(params[:id])
@dossier_contacts = @dossier.contacts
Но когда я запрашиваю представление представления, я получаю ошибку:
SQLite3::SQLException: no such table: contacts_dossiers: SELECT COUNT(*) FROM "contacts" INNER JOIN "contacts_dossiers" ON "contacts"."id" = "contacts_dossiers"."contact_id" WHERE "contacts_dossiers"."dossier_id" = 1
Вид выглядит так:
<li><%= I18n.t :dossier_nr_contacts %></li><li><%= @dossier_contacts.count.to_s %></li>
Я думаю, что установил правильные отношения, таблица существует, но я не знаю, почему она выдает ошибку. Есть какие-нибудь подсказки?
Редактировать: Миграция, которую я сделал:
class CreateDossiersContactsJoinTable < ActiveRecord::Migration
def up
create_table :dossiers_contacts, :id => false do |t|
t.integer :dossier_id
t.integer :contact_id
end
end
def self.down
drop_table :dossiers_contacts
end
end