Идентификатор в приложении рельсов - PullRequest
0 голосов
/ 09 апреля 2011

В моем приложении у меня есть модель пользователя и модель адреса.Как у меня есть форма адреса для включения идентификатора идентификатора пользователя.(т.е. моя модель адреса имеет идентификатор и идентификатор_пользователя)?

Ответы [ 2 ]

1 голос
/ 09 апреля 2011

Ваша модель адреса должна содержать поле user_id, а не поле id_user. Похоже, вы только начинаете работать с Rails, поэтому я рекомендую прочитать официальные руководства Getting Started и Association * , чтобы изучить основы.

0 голосов
/ 09 апреля 2011

Вы, вероятно, хотите посмотреть на ассоциации записей. Я настоятельно рекомендую руководство по этому вопросу на сайте Rails .

Поскольку вы потратили время на создание двух отдельных моделей (одна для пользователей и одна для адресов), я полагаю, это потому, что вы можете иметь один или несколько адресов на пользователя. Поэтому я бы рекомендовал использовать ассоциацию has_many

В вашем файле миграции для вашей модели адреса должно быть имя столбца user_id типа integer. По соглашению, рельсы будут использовать столбцы с именем model_id для связи с моделью. Так что в вашем случае модель user может быть связана с адресом через столбец user_id.

Однако наличия колонки недостаточно. Вам также нужно рассказать Rails об ассоциации в модели. Поэтому добавьте следующее в начало вашей пользовательской модели (я бы предположил app / model / user.rb)

has_many :addresses

Затем скажите вашей адресной модели, что она принадлежит пользователю. Это снова очень прямолинейно. Добавьте следующее вверху вашей адресной модели (app / model / address.rb)

belongs_to :user

Оттуда вы можете делать все, что угодно. Чтобы создать свои формы, вы можете посмотреть на вложенные модели моделей. На нем есть два Railscast Часть 1 и Часть 2

Поскольку ваш опыт работы с Rails кажется ограниченным в то время. Я бы также порекомендовал ознакомиться с руководством по началу работы , посмотреть серию учебных пособий от Envy Labs (комично называемое Rails for Zombies ) и когда вы переходите по Railscasts Райанс Бейтс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...