Я разместил здесь этот вопрос, поскольку это не было сразу видно. Поэтому я хотел убедиться, что другие были в том же маринаде, что, надеюсь, им помогает.
Итак, во-первых, с Rails для новых Rails. Когда вы создаете модель, например «Story», генератор будет умножать модель при создании имени таблицы для базы данных, например «истории». Так, например, когда я запускал «рельсы g model author_book», модель заканчивается названием «BookBook», а рельсы именуют таблицу author_books.
Помните об этом при выборе имен моделей, поскольку первоначально «История» была названа «Новости», что нарушило соглашение о рельсах с моделями, названными в единственной форме.
Также еще одно примечание: не имеют действительно длинных имен моделей и первичных ключей, так как когда рельсы соединяют отношение многих и многих в базе данных, это может вызвать проблемы, поскольку оно ограничено максимум 64 символами (из чего Я помню).
Так, например, допустим, что у нас есть книги и авторы и связь между ними. Вот как они будут представлены в рельсах:
приложение/модели/book.rb
class Book < ActiveRecord::Base
attr_accessible :title
has_many :author_books #This is the database table name!!
has_many :authors, through: #This is the database table name!!
end
приложение/модели/author.rb
class Author < ActiveRecord::Base
attr_accessible :name
has_many :author_books #This is the database table name!!
has_many :books, through: :author_books #This is the database table name!!
end
приложение/модели /author_book.rb
class AuthorBook < ActiveRecord::Base
attr_accessible :author_id, :book_id
belongs_to :author #This is the MODEL name
belongs_to :book #This is the MODEL name
end
20131025011112_create_author_books.rb миграция Пример:
class CreateAuthorBooks < ActiveRecord::Migration
def change
create_table :author_books, :id => false do |t|
t.belongs_to :author #this is the MODEL name
t.belongs_to :book #this is the MODEL name
end
add_index :author_books, [:author_id, :book_id], :unique => true #This is the database table name!!
end
end
Я надеюсь, что спасает кого-то еще некоторое время!
проверить этот документ http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_and_belongs_to_many –