2010-07-23 2 views
1

Так что я только начал с Rails и сейчас смотрю HABTM. Я читаю книгу DHH, и я вижу, что у него есть две модели - статья и пользователь. У них есть отношения HABTM. Однако мне интересно, нужно ли мне самостоятельно создавать отдельную миграцию для модели articles_users или будет ли Rails делать это для меня?Связанные пользователи и статьи

Если да, то что произойдет, если я создам нового пользователя и свяжу его со статьей? Будет ли Rails сразу знать, что нужно вводить внутри таблицы articles_users?

Ex:

u = User.new(:name => "John"); 
a = Article.new(:title =>"Rails"); 

#can мне это сделать?

a.user << u 

#will рельсы автоматически создает запись внутри articles_users таблицы?

Я немного смущен, когда Rails останавливается с точки зрения создания таблиц для нас или чего-то еще.

ответ

3

Вам потребуется вручную создать таблицу с переносом. Тем не менее, большинство разработчиков rails теперь предпочитают использовать Many Through вместо HABTM. Другое преимущество заключается в том, что когда вы создаете «модель объединения», рельсы будут выполнять миграцию для вас!

+0

Можете ли вы привести мне пример команды script/generate для модели соединения, которую вы только что упоминали? – denniss

+1

try: script/generate model articles_users article_id: integer user_id: integer – Brian

+0

Брайан прав. Еще одно преимущество использования HMT заключается в том, что у вас есть целая модель, с которой вы можете впоследствии добавить методы или больше атрибутов. –

Смежные вопросы