Rails: модель с массивом объектов моего класса

#ruby-on-rails #ruby #arrays #model

#ruby-on-rails #ruby #массивы #Модель

Вопрос:

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

Логин пользователя: строка -пароль: строка -электронная почта: строка -подписчики: массив (введите пользователя)

Теперь у меня есть эта команда termainal rails :*

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

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

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

Ответ №1:

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

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

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

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

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

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