Связывание моделей в Ruby on Rails - PullRequest
2 голосов
/ 28 января 2011

Я создаю приложение Rails, и я хочу подключить две модели.

Есть модель под названием «users», которая обрабатывает аутентификацию пользователя, например, данные имени пользователя и пароля. Затем есть модельназываемые "профилями", в которых есть местоположение человека, описание и т. д. и т. д.

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

Ответы [ 3 ]

5 голосов
/ 28 января 2011

взгляните на основы рельсовых ассоциаций

ваша ассоциация будет выглядеть как

class User < AR:Base
  has_one :profile
end

class Profile < AR:Base
  belongs_to :user
end

о, в профилях таблиц должен быть столбец user_id с внешним ключом для пользователя.

0 голосов
/ 28 января 2011

Звучит как личная ассоциация. Вот как бы вы это настроили:

class User < ActiveRecord::Base
  has_one :profile
end

class Profile < ActiveRecord::Base
  belongs_to :user
end

Rails делает такие отношения очень простыми. :)

Убедитесь, что в таблице Profiles есть столбец user_id, чтобы эта связь работала.

0 голосов
/ 28 января 2011

Вы хотите, чтобы в вашей модели пользователя и в вашей модели профиля была ассоциация has_one и own_to. Модель вашего профиля, скорее всего, будет иметь столбец user_id и будет иметь отношение «ведомый_то», тогда как у пользователя не будет столбца для профиля и будет отношение «has_one».

Тогда в своем коде вы можете сделать это:

profile = some_user.profile

или

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