Sync — это приложение, в котором пользователи могут создавать события. Это отличный способ запланировать встречу с друзьями, семьей, коллегами.

У меня было большое желание создать приложение, в котором люди могли бы выбирать время и дату, когда они могут встретиться. Выяснил, что кто-то уже придумал эту идею. (Посмотрите Doodle.) Итак, в конечном счете, цель каждого хоста состоит в том, чтобы выбрать диапазон дат и времени, и он будет отображаться в виде расписания. Затем каждый приглашенный гость может выбрать столько доступного времени, сколько он хочет. Дата, которая будет выбрана больше всего, будет датой мероприятия. Это положило конец большому количеству переписки в групповых чатах.

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

Я создал быструю шпаргалку, чтобы, когда мне нужно будет снова создать новое приложение rails, я смогу сделать это с помощью самых простых возможных инструкций:

  1. Создайте репозиторий на своем github
  2. Затем на вашем терминале:
  3. а. $ rails новая синхронизация
  4. б. теперь нажмите на существующее репо
  5. я. $ git инициировать
  6. II. $ git добавить.
  7. III. $ git commit –m «Первая фиксация»
  8. IV. $ git remote add origin https://github.com/yinazee/sync
  9. v. $ git push –u источник происхождения
  • Устранение неполадок:
  • Если вы не можете нажать:
  • $ git тянуть
  • $ git push (если это все еще не работает, выполните git push –f)
  • Затем, наконец, скопируйте базовый gem-файл из предыдущего проекта и добавьте свои собственные драгоценные камни.
  1. Выполните эту лабораторную работу, чтобы завершить вход в социальную сеть. Чтобы использовать ссылку для входа: ‹%= link_to (Войти через Facebook!, /auth/facebook) %› Не забудьте добавить .env в ваш файл .gitignore
  2. Теперь настройте свои базы данных

============================================

Синхронизация — Настройка ваших моделей

Итак, после настройки базовой основы моего приложения rails, я установил, какие модели мне нужны, и их взаимосвязь друг с другом.

Я всегда устанавливаю свои модели на бумаге и рисую их отношения.
Поэтому я хотел создать пользовательскую модель, и каждая модель будет выполнять 2 шляпы или 2 другие роли. Они могут быть хозяином или гостем. Таким образом, каждый раз, когда инициируется новый пользователь, хост и гостевой экземпляр создаются путем ассоциации. Следовательно:

=======

Пользователь

has_one хост

has_one гость

=======

Теперь, чтобы настроить модель хоста и модель гостя, чтобы отразить это:

=======

Хост

принадлежит пользователю

Гость

принадлежит пользователю

=======

Теперь пришло время для модели таблицы соединений. Таким образом, основная цель этого приложения заключается в том, чтобы ведущий мог создавать события и приглашать гостей. Мне нужна таблица соединений, которая отслеживает уникальные отношения между гостем и событием. Следовательно:

======

Хост

принадлежит пользователю

has_many событий

Гость события

принадлежит событию

принадлежит гостю

Гость

принадлежит пользователю

has_many event_guests

has_many событий через: event_guests

has_many хостов через события

Событие

host_to host

has_many event_guests

has_many guest, через: event_guests

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

Пользовательская модель

Итак, резюмируя, Пользователь берет на себя 2 дополнительные роли. У них есть host_id для создания событий и guest_id, чтобы их можно было пригласить на мероприятие. Сам пользователь не мог редактировать свою информацию — —

Поскольку я пишу эту запись в блоге после того, как «завершил» свой проект, я только что принял решение, что пользователь не сможет удалить свою учетную запись. Многие модели зависят от модели пользователя. Если пользователь будет удален, события, на которые этот пользователь приглашен, будут аварийно завершены, если только я не поставлю условие для предотвращения этого. Но что еще более важно, события, созданные пользователем в прошлом, также будут удалены. И с этим мне пришлось бы удалить все модели EventGuest, которые были приглашены на эти события. Это не имеет смысла. Поэтому я удалил функцию удаления пользователя.

Модель гостя против модели EventGuest

Мы можем получить доступ к объекту EventGuest через @event.event_guests, и он выведет список всех гостей, приглашенных на это конкретное мероприятие. Вот основное отличие:

– Чтобы получить доступ к имени гостя: Через гостевую модель: @event.guests.first.user.name Через модель EventGuest: @event.event_guests.first.guest.user.name

Хотя любые изменения, внесенные в приглашенного гостя, следует решать с помощью модели EventGuest.

Чтобы отобразить список гостей, в частности, для этого события, нам нужно получить доступ к модели объединенной таблицы, мы могли бы определить, какое событие (по event_id) и кто (guest_id) будет идти. У него также есть атрибут «rsvp», который имеет логический тип и позволяет отслеживать, кто собирается на мероприятие, а кто нет.

Пользователь также не может редактировать список гостей после создания нового мероприятия.

  • В идеале приглашенный гость должен получить уведомление о том, что он приглашен на мероприятие. Но было бы странно, если бы событие больше не отображалось в их списке «События, на которые вы были приглашены». Также может быть недопустимо по параметрам реальной жизни, чтобы кого-то пригласили, а потом не пригласили. Но эта мысль будет пересмотрена, слишком много вариантов для Пользователя тоже может быть не очень хорошо. Если я хочу, чтобы список гостей редактировался, срок действия функции rsvp истекает через определенное время. Но на данный момент мы просто предполагаем, что все гости не будут присутствовать, и если они придут, им нужно будет установить флажок «Да», чтобы отправить заявку. После того, как это было отправлено, Пользователь не может редактировать его.
  • ## Как организована страница Events#Index Когда событие создается, пользователи приглашают гостей. Затем это событие будет отображаться на странице указателя событий гостя. Чтобы получить доступ к событиям, на которые был приглашен пользователь, просто войдите в @user.guest.events. А чтобы получить список событий, созданных пользователем, перейдите на @user.host.events. Гость никогда не должен иметь возможность редактировать или удалять мероприятие.
  • ## Проблемы ## Расскажите о текущих проблемах и вопросах – могут ли пользователи удалять свои учетные записи.

Источники:

«https://rubygems.org» Для этого проекта я добавил: Simple Calendar Gem Pry Bootstrap Autoprefixer-rails Гемы входа в социальные сети (Facebook) i. драгоценный камень «dotenv-rails» ii. драгоценный камень «омниавт» III. жемчужина «omniauth-facebook»