Рельсы - Большие против Распределенных Столов - PullRequest
1 голос
/ 28 июля 2011

Я относительно новичок в Rails.

У меня есть пользовательская модель через Devise. Мне интересно, будет ли эффективнее иметь все дополнительные поля, которые мне нужны для пользователя, в отдельной модели профиля.

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

Может кто-нибудь рассказать о преимуществах и недостатках создания отношения has_one, особенно с точки зрения производительности.

1 Ответ

0 голосов
/ 29 июля 2011

Я также относительно новичок в Rails, но это мое мнение ...

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

Если вы используете отношение has_one, вы должны помнить, что при обращении к профилю вы получите нечто похожее на это:

user = User.first

puts user.profile.first_name
puts user.profile.age

Достаточно просто, но если вы хотите что-то вроде user.first_name, вам нужно будет делегировать этот метод в модель профиля.Это все вопрос предпочтения.

...