Rails: модель с массивом объекта моего класса - PullRequest
2 голосов
/ 28 сентября 2011

Я начинаю RoR. Я разработал свою модель так:

Пользователь -login: строка -password: строка -Е: строка -followers: массив (тип user)

Теперь у меня есть эта команда рельсов Termainal: *

rails generate model User login:string password:string email:string

но я не знаю, как сказать моей сгенерированной модели, что мне нужен массив User.

Я думаю, что мой вопрос немного глуп, потому что Ruby похож на PHP (без типов). Но я предпочитаю спросить ... Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 28 сентября 2011

Если вы хотите иметь что-то вроде последователей, вы должны использовать ассоциацию «многие ко многим».Посмотрите на ассоциации в руководстве по рельсам: http://guides.rubyonrails.org/association_basics.html

Вы должны помнить, что когда вы генерируете модель и задаете login: string, например, вы указываете имя и тип столбца, который будетсоздан в вашей базе данных.

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

В Google вы найдете множество статей, в которых объясняется, как создать отношения «многие ко многим».Но RailsGuides действительно хорошо сделаны, сначала посмотрите на это.

Редактировать:

Поскольку ваш последователь также будет иметь тип User, вам придетсясделать что-то вроде этого: has_and_belongs_to_many: последователи,: class_name => "Пользователь" Вы можете посмотреть в документации для других вариантов: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_and_belongs_to_many

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