#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