Relacja has_and_belongs_to_many

Witam,

Utworzyłem relację has_and_belongs_to_many, ale nie działa jak powinna. Mam takie dwa modele:

class Book < ActiveRecord::Base
  has_and_belongs_to_many :bookcases 
end

class Bookcase < ActiveRecord::Base
  has_and_belongs_to_many :books
end

oraz tabelę złączającą:

create_table "bookcases_books", id: false, force: true do |t|
  t.integer "bookcase_id"
  t.integer "book_id"
end

Kiedy w konsoli rails wywołuję Book.last.bookcases wszystko jest ok, natomiast w drugą stronę Bookcase.last.books wyrzuca mi błąd:

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column books.bookcase_id does not exist

Treść błędu rozumiem, klucz obcy bookcase_id jest szukany w tabeli, w której nie istnieje, ale jak temu zaradzić/co robię źle?

Dodanie do relacji opcji join_table: 'bookcases_books' załatwiło sprawę. Najwyraźniej konwencja nazewnicza gdzieś mi zaszwankowała. Temat nieaktualny.

ogólnie dużo lepszym wyjściem byłoby jednak has_many :through
tutaj masz artykuł o tym: http://kevmcnamee.com/blog/2012/11/07/why-you-dont-need-has-and-belongs-to-many-relationships/

Zastanawiałem się nad użyciem tej relacji, ale stwierdziłem, że jedyne czego potrzebuje to informacja jakie obiekty są powiązane z danym obiektem, dlatego użycie dodatkowego modelu złączającego wydawało mi się niepotrzebne. Z drugiej strony, nawiązując już do artykułu, być może faktycznie aplikacja rozwinie się w taki sposób, że może się to zmienić i ciężko na samym początku przewidzieć tego typu sytuację i lepiej się zabezpieczyć.