Добро пожаловать на наш следующий Let's Build! В этой сборке в качестве вдохновения для проекта используется известный гигант социальных сетей Twitter. Мы будем создавать своего рода подделку под названием twittter .
В частности, это приложение продемонстрирует систему ролей пользователей, позволяющую вашему веб-приложению и навигационному приложению чувствовать себя полностью в браузере. Я буду работать немного быстрее, чем предыдущую сборку, поскольку это было скорее фундаментальное упражнение, в котором я объяснял общие концепции, связанные с экосистемой Ruby on Rails. Мы воспользуемся генераторами Rails, чтобы помочь реализовать некоторые вещи, которые я уже рассмотрел. Если вы еще не смотрели первый выпуск «Построим», приглашаю вас это сделать, чтобы понять, что мы делаем.
Загрузите исходный код
Само приложение будет основано на базовом принципе CRUD, позволяющем нам создавать, читать, обновлять и уничтожать твиты . По сути, это то же самое, что и моя предыдущая сборка, в которой мы создавали посты для блога. Помимо твитов , я представляю новый драгоценный камень под названием Devise, который упрощает создание всей роли пользователя и системы аутентификации. В сочетании с этим драгоценным камнем мы можем аутентифицировать пользователей, которые хотят писать твиты . Твиты пользователя также привязываются к его учетной записи. Конечным результатом является общедоступный сайт с потоком твитов от разных пользователей. Пользователи, у которых есть учетная запись, могут войти в систему, чтобы создавать свои собственные твиты и добавлять их в общедоступную ленту.
Twitter — довольно сложное приложение. Я не буду освещать ответы, ретвиты, лайки и многие другие основополагающие особенности знаменитого гиганта социальных сетей. Вместо этого я предлагаю вам поработать над тем, как можно добавить эти функции. Подобно тому, как я создал блог с комментариями, посмотрите, сможете ли вы придумать, как добавлять ответы в приложение самостоятельно. (Совет: это то же самое, что добавление комментариев к сообщению в блоге, как я делал в предыдущей сборке ;)). Я могу вернуться к этому приложению, чтобы добавить больше функций в качестве еще одного упражнения, но, честно говоря, у меня закончилось время! Дайте мне знать, если вы хотите, чтобы я расширил это дальше.
Есть также несколько жемчужин для лайков постов. Вот мой любимый
Примечание. Одна большая ошибка, которую я заметил после завершения работы в этой сборке, заключалась в том, что любой вошедший в систему пользователь мог редактировать твиты любого другого пользователя. Это большой недостаток безопасности, поскольку возможности пользователя должны находиться только в пределах его собственной учетной записи. Посмотрите, сможете ли вы найти способ разрешить только текущему вошедшему в систему пользователю редактировать свои собственные твиты, а не другим пользователям. Я могу вернуться к этой серии, чтобы расширить и решить эти проблемы.
Лучшие ошибки – лучшие ошибки
Bulma — для простого CSS. Не стесняйтесь использовать свои собственные стили и/или использовать другую структуру.
Guard — полезен для живой перезагрузки наших файлов scss
, js
, css
и erb
, хотя он способен на гораздо большее!
Для работы гема Guard LiveReload требуется Guard.
Охранник LiveReload
Простая форма – для простых форм!
Devise — удобные роли пользователей и аутентификация
Gravatar_image_tag — встроенный тег изображения, который выдает граватары.
Продолжить чтение на web-crunch.com