Как рельсы управляют ассоциациями? - PullRequest
0 голосов
/ 08 февраля 2011

Я все еще изучаю Ruby, и я полностью погружен в «магию», желая лучше понять, что происходит на самом деле, и убедившись, что я понимаю, что он делает.

У меня есть пользователь, и у каждого пользователя есть записи.В моем пользовательском классе у меня есть

has_many :entries

, а в моем классе записей у меня есть

belongs_to :user

Я ожидал, что в таблице записей будет столбец для пользователей, но яне вижу этого, когда я «описываю» базу данных.

Как узнать или как Rails узнает, к какому пользователю подключена запись?Или мне нужно создать поле самостоятельно, чтобы сделать это?

Мне кажется странным, что у нас есть все эти «принадлежащие» и т. Д., Но пока неясно, как устанавливается это соединение.

1 Ответ

1 голос
/ 08 февраля 2011

Это распространенное заблуждение.Ассоциации не создают таблицы базы данных для вас.Вместо этого вы должны создать их самостоятельно.Вам нужно быть осторожным, чтобы модель Entry имела поле user_id, чтобы ассоциация работала полностью.Я действительно не хотел бы рекламировать или что-то еще, но я создал сообщение в блоге, которое может вам помочь, я думаю:

http://www.codercaste.com/2011/02/06/rails-association-in-plain-english-what-i-wish-i-had-known-before-i-started/

...