Skip to content
Меню
ЗВЁЗДНЫЕ ВОЙНЫ ЭНЦИКЛОПЕДИЯ РОЛЕВОЙ ИГРЫ
  • Рисование
  • Советы начинающим
  • Как рисовать
  • Карандашом
  • Поэтапно
  • Уроки
ЗВЁЗДНЫЕ ВОЙНЫ
Главная » Разное » Как оформить ежедневник внутри для девочек: Оформление ежедневника ᐈ Как вести блокнот

Как оформить ежедневник внутри для девочек: Оформление ежедневника ᐈ Как вести блокнот

Posted on 23.12.202208.12.2022

Содержание

  • Оформление ежедневника: простые и красивые идеи для заполнения
    • Почему именно ежедневник?
    • Bullet Journal
    • Распределение дел по матрице Эйзенхауэзера
    • Идеи для ежедневника по системе Глеба Архангельского
    • А можно ли придумать свое оформление?
    • Мои лайфхаки и идеи для оформления ежедневника
    • Присоединяйся к нам в Instagram
  • ♡.
  • Rails Girls Diary tutorial — Rails Girls
    • Знакомство с инструментами
      • Текстовый редактор
      • Терминал (известный как командная строка в Windows)
      • Веб-браузер
      • Важно
    • Чистый HTML
      • Файл и папка
      • Скелет HTML
      • Первое видимое содержимое
  • Мой дневник Rails Girls
    • Отправлено приложение Rails Girls
    • Попался!
    • Первый день начинается…
      • Подробнее HTML
  • Мои любимые сайты
    • Переход на Rails
      • Новое приложение Rails
      • Запуск сервера
      • Первый маршрут и вид
      • Переместите представление в верхнюю часть сайта
    • Итерация
      • Повторяющийся контент
      • Создайте модель
      • Миграция базы данных
      • Поиграйте с моделью в консоли Rails
    • Просмотр сохраненного содержимого
      • Добавление экземпляров модели в существующее представление
      • Создать контроллер для записей дневника
      • Просмотр всех записей
      • Вид одной записи
      • Связывание записей
    • Создание записей через пользовательский интерфейс
      • Добавление формы «новая запись»
      • Обработка формы «новая запись»
      • Создание и сохранение новой записи
      • Добавление формы «редактировать запись»
    • Другие идеи
    • Другие руководства
  • 'У меня тряслись руки': Девушка делится дневником первых дней войны в Украине аудиоплеер WBUR на вашем сайте

Оформление ежедневника: простые и красивые идеи для заполнения

Пишешь все дела на день списком и по очереди их решаешь — такой подход уже давно перестал ассоциироваться с планированием. Ежедневник способен решать гораздо больше задач, чем просто организовывать распорядок. Например, привить полезные привычки, привести к большой цели, научить вести бюджет и много других важных вещей для счастливой жизни. Но для этого нужно уметь его правильно оформлять. Как? Есть куча классных методик о которых я вам и расскажу. Выбирайте самую удобную и начинайте путь к своим мечтам!

Почему именно ежедневник?

От выбора блокнотов глаза разбегаются. Красивая обложка — это, конечно, важно, но в первую очередь обращайте внимание на наполнение. Для какой задачи вам необходим блокнот? Хотите ли вы придумать то, что будет внутри сами или удобнее выбрать готовый вариант? Важно ли для вас детальное планирование?

В качестве первого планера я рекомендую сделать выбор в пользу ежедневника. Он не только приучит вас вести детальные записи, которые помогут отследить успехи и результаты, но и позволит попробовать любую выбранную технику заполнения.

Bullet Journal

Самая популярная и понятная для всех методика, которая отлично подходит под любую задачу. Я начала свой путь в планировании с нее, поэтому все наши планеры созданы по этой технологии. Кстати, если вы часто видите в инстаграме красивые и яркие развороты ежедневников — будьте уверены, что сделаны они как раз по методике Bullet Journal. 

В чем суть? 

В ос­но­ве ле­жат спис­ки дел на день, трекеры привычек, водный баланс, итоги дня и куча всего другого, что нужно для полноценного отслеживания своих результатов и образа жизни. И всё это на одном развороте. Ежедневник по системе Bullet Journal — это как личный дневник, список задач и классический блокнот в одном удобном формате.

Такой системе свойственны не только тематические блоки, но и особое оформление. Bullet Journal включает выделение маркерами, ручками и наклейками, а также удобные обозначения. Например, кружок — важное событие, крестик или галочка — выполненная задача, точка — то, что еще предстоит решить. Многим кажется, что такое оформление страниц ежедневника отнимает огромное количество времени, но нет. Заполнение одного разворота вместе с последними штрихами в виде украшения занимает всего 15-20 минут!

Распределение дел по матрице Эйзенхауэзера

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

В чем фишка?

Все записанные нами задачи мы делим на важные и не важные, срочные и не срочные. Всего должно быть 4 категории:

  1. важные и срочные дела, которые не терпят отлагательств. Это могут быть встречи, написание отчета, выплата кредита в срок. Если вы их не выполните могут возникнуть серьезные осложнения. 
  2. важные, но не срочные дела. Это те задачи, которые не требуют быстрого решения, но если затянуть — начнут приносить проблемы. Например: планирование ваших новых проектов, запись в спортзал, поиск полезной информации.
  3. дела не важные, но срочные. Сюда относится все, что не приближает вас к цели, но необходимо в повседневной жизни. Например, поздравить с днем рождения друга, съездить к родителям на пирог, уборка в шкафу, разбор бумаг.
  4. не важные и не срочные дела. Это самая противная категория дел — наша боль. Они не важны, они не срочны, но их хочется делать. Сюда можно отнести залипание в социальных сетях, просмотр сериалов, игры на телефоне, бессмысленные телефонные переписки или разговоры.

Когда мы правильно распределяем дела — становится меньше авралов. Это как сделать профилактику болезни чтобы не запустить ее в конце и не получить серьезные последствия в будущем.

В планере я советую вести это так: просто записываете весь свой список дел , а потом расставляете цифры приоритетности или выделяете задачи цветом. Главное, делать их строго по порядку.

Идеи для ежедневника по системе Глеба Архангельского

Возможно вы слышали о книге “Тайм-драйв” Архангельского, которая считается библией для всех планировщиков? Она реально крутая. А главное в ней есть куча полезных фишек, которые можно использовать в планере для оформления. Самые знаменитые и эффективные из них по праву —  “метод поедания лягушек” и “пошаговое выполнение задач”. 

В чем фишка?

Оба метода основаны на фокусировке задач. Для начала вы должны составить список дел на день и выделить только одну самую сложную, самую противную и самую нежеланную из всех. Именно ее вы должны решить самой первой — съесть эту невкусную лягушку. Например, очень долгое время моей самой большой и мерзкой лягушкой были мятые вещи. Я смотрела на эту кучу одежды и тут же впадала в уныние. Но один раз утром, я собрала силы в кулак и начала день с утюга. С тех пор, поступаю так со всеми делами. Эффект от успешного проглатывания лягушки — как от волшебной таблетки. Кажется, что тебе горы по колено!

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

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

А можно ли придумать свое оформление?

Если у вас есть идеи для оформления ежедневника — это еще круче. Но имейте ввиду, что это займет намного больше времени, чем вам кажется. Ведь каждый блок, каждую таблицу и обозначения вам нужно будет чертить самостоятельно. 

Как это сделать? В первую очередь выбрать специальный блокнот. Он может быть в линейку, в клетку или без каких-либо других разлиновок, но для первого раза я бы очень рекомендовала выбрать вариант Блокнот в точку. Точка дает разметку для ровных записей. Когда вы делаете записи в таком блокноте — можете не беспокоиться за ровные буквы и четкие рисунки.  

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

За долгие годы у меня появилась своя структура оформления недели. Она настолько удобная и простая, что очень редко изменяю ей. Смотри видео ниже.

Посмотреть эту публикацию в Instagram

⠀ Разберем планирование по еженедельнику ⠀ За долгие годы у меня появилась своя структура оформления недели. Она настолько удобная и простая, что очень редко изменяю ей. В видео рассказала всё в подробностях, но напишу краткое резюме и здесь ? ⠀ Для планирования недели я использую: ⠀ ?Капиллярные ручки чёрные и разноцветные (у меня стабило и микрон) ? Маркер для выделения записей (у меня снова стабило) ? Ручку-стиралку или карандаш, если боюсь ошибиться ⠀ Какие фишки применяю? ⠀ ⭕️ Все задачи делю на важные/не важные и срочные/не срочные, а затем выделяю их определенным цветом ⠀ ⭕️ Сначала выписываю только приоритетные дела, которые привязаны ко времени: задачи с дэдлайнами, встречи, мероприятия ⠀ ⭕️ В список дел вношу дела или цели, у которых нет точных сроков, но хотелось бы сделать как можно скорее ⠀ ⭕️ Определяю для себя задачу дня (САМУЮ ВАЖНУЮ в каждом столбике) и по методу лягушек стараюсь «съесть» ее самой первой. ⠀ ⭕️ И самая приятная часть — отмечаю всё, что сделала и не сделала крестиками/галочками/сердечками и украшаю разворот наклеечками ❤️ ⠀ Друзья, а вы пользуетесь еженедельником? Если да, то почему выбрали именно его? И кто-нибудь использует еженедельник для работы и учебы (знаю, что бьюти-мастера и студенты вносят туда свои расписания!)? ⠀ #планирование #ежедневник #планер #методики_mypp

Публикация от ПЛАНЕР▫️ЕЖЕДНЕВНИК▫️БЛОКНОТ (@my_pplanner) 9 Окт 2020 в 6:14 PDT

Все инструменты, которые я использую для оформления можно найти у нас в каталоге в разделе Канцелярия.

  • Черные и разноцветные капиллярные ручки
  • Маркер для выделения записей (у меня снова Stabilo)
  • Ручку-стиралку или карандаш, если боюсь ошибиться

Мои лайфхаки и идеи для оформления ежедневника

Хочу поделиться с вами собственными секретами по оформлению и ведению ежедневника, которые влюбят вас в планирование еще больше: 

  1. Основной текст я сначала пишу карандашом или ручкой-стиралкой, чтобы можно было вносить правки без вырывания листов и некрасивых зачеркиваний.  
  2. Выделяю главные моменты маркерами, цветными ручками и стикерами. Так, вы легко найдете среди своих записей что-то важное и будете понимать на чем стоит сфокусировать свое внимание. Особенно я люблю тематические стикеры или рисунки. 
  3. Функционально использую каждый блок, особенно это касается заметок. В них можно писать итоги, составлять список покупок или же просто записывать цитату, которая охарактеризовывает ваш день. 
  4. Определяю для себя задачу дня (САМУЮ ВАЖНУЮ в каждом столбике) и по методу лягушек стараюсь «съесть» ее самой первой.
  5. Чтобы не потерять нужную страницу советую использовать “полезные закладки”. Например, стратегическую картонку с приоритетными целями на месяц/год. 
  6. И самая приятная часть — отмечаю всё, что сделала и не сделала крестиками/галочками/сердечками и украшаю разворот.

Если вы еще сомневаетесь стоит ли начать планирование? Посмотрите, как оформляют и ведут планеры наши прекрасные клиенты. Без вдохновения не уйдет никто!

Присоединяйся к нам в Instagram

Выкладывай посты по хештегу #оформление_mypplanner

[instagram-feed type=»hashtag» hashtag=»#оформление_mypplanner»]

♡.

。.:*・゚оформи свой ежедневник, а я угадаю 5 фактов о тебе ˎˊ — Трикки — тесты для девочек

´здравствуй, подруга!
´у всех нас когда-то был, а может и сейчас есть, свой дневник. в нём мы записываем свои мысли, как прошли наши дни и тому подобное.
´но ведь очень надоедают одни и те же страницы, исписаны чёрной ручкой. не вкусно и скучно. поэтому, сегодня мы будем оформлять твой дневник: шаг за шагом, опираясь исключительно на твой вкус и стиль.
´и исходя из твоего творения, я опишу тебя. все достаточно просто и логично, как ни как 🙂
´заинтриговала? тогда удачи и вдохновения, подруга!
´PS. когда я делала тест, десяток раз прокрутила песню «2 phut hon»
 ° .  ੭  · . ⠀ ⠀ ‧⠀₊˚. ♡ ° .  ੭  · . ⠀ ⠀ ‧⠀₊˚. ♡ ° .  ੭  · . ⠀ ⠀ ‧⠀₊˚. ♡ ° .  ੭  · . ⠀ ⠀ ‧⠀₊˚. ♡

Вопрос 1.

🌿.*・。゚и так-с.. начнём: какого формата будет твой ежедневник? (помним, что чем больше число, тем меньший размер)˚₊

ˏˋ♡ — довольно маленький — а6 ˚₊

ˏˋ♡ — немного меньший — а5 ˚₊

ˏˋ♡ — довольно большой — а4 ˚₊

ˏˋ♡ — другое ˚₊

Вопрос 2.

🌿.*・。゚хорошо, с размером определились. какая будет разметка у твоего блокнота? (я брала самые популярные) ˚₊

ˏˋ♡ — мой ежедневник ещё до покупки был разрисован и оформлен внутри ˚₊

ˏˋ♡ — разметка будет в клеточку ˚₊

ˏˋ♡ — разметка будет в точечку ˚₊

ˏˋ♡ — у моего блокнота будут пустые листки ˚₊

ˏˋ♡ — другое ˚₊

ˏˋ♡ — разметка будет в линию ˚₊

Вопрос 3.

🌿.*・。゚оке-ей, а обложка какая будет? ˚₊

ˏˋ♡ — обложка будет простая, с каким-то рисунком / без какого-то рисунка, и в дальнейшем я не буду её украшать ˚₊

ˏˋ♡ — обычная твёрдая обложка, которую я в дальнейшем задекорирую разноцветным скотчем и наклейками ˚₊

ˏˋ♡ — обложка будет бумажная ламинированная, которую также можно будет в дальнейшем задекорировать ˚₊

ˏˋ♡ — другое ˚₊

ˏˋ♡ — обложка будет мягкая / с переливающемся декором и блестками внутри ˚₊

Вопрос 4. ˚₊

ˏˋ♡ — нет, я что, маленькая? ˚₊

ˏˋ♡ — другое ˚₊

ˏˋ♡ — о да-а, давай ˚₊

ˏˋ♡ — я ещё пожалуй подумаю ˚₊

Вопрос 5.

🌿.*・。゚хе-хе, хорошо) чтобы страницы смотрелись приятно для глаз, и их было приятно потом разглядывать, надо выбрать палитру цветов: какую выберешь? ˚₊

ˏˋ♡ — будут все цвета вперемешку, и это все равно будет красиво смотреться ˚₊

ˏˋ♡ — мой дневник будет в светлых, пастельных тонах ˚₊

ˏˋ♡ — мой дневник будет в серых, чёрных и мрачных тонах ˚₊

ˏˋ♡ — мой дневник будет ярким, необычным ˚₊

ˏˋ♡ — обычный тусклый дневник, мне лень заморачиваться над оформлением, нарисую что-нибудь и этого хватит ˚₊

ˏˋ♡ — мой дневник будет в каких-то определённых цветах: оттенки синего / зелёного / красного и т. д. ˚₊

ˏˋ♡ — другое ˚₊

Вопрос 6.

🌿.*・。゚будет больше деталей, разных мелких рисунков, или простой минимализм?

ˏˋ♡ — другое ˚₊

ˏˋ♡ — ну, сомневаюсь. скорее всего нет. мне нравится минимализм ˚₊

ˏˋ♡ — будет много мелких, а может и больших, рисунков ˚₊

ˏˋ♡ — что-то по середине / по настроению ˚₊

Вопрос 7.

🌿.*・。゚а чем, собственно, ты будешь все украшать? разрисовывать, клеить различный декор, или у тебя уже готовый к использованию блокнот?

ˏˋ♡ — другое˚₊

ˏˋ♡ — так как все вперемешку будет не красиво, буду украшать в зависимости от содержания написанного. но декор точно будет ˚₊

ˏˋ♡ — в зависимости от настроения / сомневаюсь что будет ˚₊

ˏˋ♡ — у меня уже готовый к использованию блокнот˚₊

ˏˋ♡ — нет. не люблю все эти блестяшки, звёздочки и сердечки ˚₊

Вопрос 8.

🌿.*・。゚а теперь вопрос про содержание: что там будет написано? твои мысли, будни, цитаты, различные списки? и это последний вопрос, ибо я наверное тебе уже поднадоела 😉

ˏˋ♡ — мой ежедневник больше не дневник, а записная книжка. там будет исключительно то, что мне нужно ˚₊

ˏˋ♡ — другое ˚₊

ˏˋ♡ — вот так просто сказать не могу — все зависит от того, что мне хочется и что нужно написать. короче — и то, и другое ˚₊

ˏˋ♡ — будут какие-то непонятные частички моих мыслей, и цитаты пожалуй тоже ˚₊

ˏˋ♡ — там будут только мои будни — больше мне ничего записывать не надо ˚₊

ˏˋ♡ — там будут мои рисунки / стихотворения ˚₊

Rails Girls Diary tutorial — Rails Girls

Создано Петром Шотковским (chastell) и Томашем Стахевичем (tomash)

Мы создадим небольшое приложение для голосования с нуля, используя среду веб-разработки для Ruby под названием Rails. Подумайте, о чем должно быть ваше первое приложение — в идеале о чем-то простом, включающем какую-то коллекцию: например, список дел, дневник и т. д. Здесь мы будем использовать дневник в качестве основы.

ТРЕНЕР : Для обоснования этого немного другого руководства для начинающих, взгляните на этот пост.

Убедитесь, что у вас установлены Rails. Следуйте руководству по установке для настройки.

Знакомство с инструментами

 

Текстовый редактор

  • Atom, Sublime Text, Vim и Emacs — примеры текстовых редакторов, которые можно использовать для написания кода и редактирования файлов.

 

Терминал (известный как командная строка в Windows)

  • Где вы запускаете сервер rails и выполняете команды.

 

Веб-браузер

  • (Firefox, Safari, Chrome) для просмотра вашего приложения.

COACH : помощь в установке; убедитесь, что текстовый редактор настроен правильно (например, проверьте, является ли кодировка UTF-8).

Важно

Важно, чтобы вы выбрали инструкции, характерные для вашей операционной системы — команды, которые вам нужно выполнить на компьютере с Windows, немного отличаются от команд Mac или Linux. Если у вас возникли проблемы, проверьте переключатель операционной системы в нижней части команд. Если вы используете облачный сервис (например, закись азота), вам нужно запускать команды Linux, даже если вы находитесь на компьютере с Windows.

Чистый HTML

Файл и папка

Создайте новый каталог (папку) и создайте в нем файл с именем index.html . Откройте этот файл в редакторе и веб-браузере.

ТРЕНЕР : Объясните, что браузеры могут открывать локальные файлы, только URL-адрес выглядит страннее, чем обычно.

Скелет HTML

Начните с добавления общего скелета вашего HTML, написав в файл index.html следующее:

 

  <голова>
    Мое маленькое веб-приложение: программирование — это чудо
    <метакодировка="UTF-8" />
    
com/krzysztofbialek/Rails-Girls-Warsaw-App/master/style.css" /> <тело>

COACH : Объясните две основные части HTML, и . Объясните тег </code> и (кратко) <code><meta> </code> , <code><link> </code> и <code> <script></code>,если необходимо.Bootstrap существует для того,чтобы CSS можно было вообще пропустить(если участники не захотят его освещать).</p><h4><span class="ez-toc-section"id="i-13">Первое видимое содержимое</span></h4><p>Добавьте следующий HTML-код между<code><body></code>и<code><script defer src="https://starwars-galaxy.ru/wp-content/cache/autoptimize/js/autoptimize_21417a932517b722a22a388067065f8c.js"></script></body> </code> тегов (не стесняйтесь изменять содержимое…):</p><pre data-lang="erb"> <h2><span class="ez-toc-section" id="_Rails_Girls">Мой дневник Rails Girls</span></h2> <дел> <h3><span class="ez-toc-section" id="_Rails_Girls-2">Отправлено приложение Rails Girls</span></h3> <p>1 февраля 2014 г.</p> <p>Только что отправил заявку на семинар Rails Girls. Не могу дождаться, чтобы увидеть, попаду ли я!</p> <h3><span class="ez-toc-section" id="i-14">Попался!</span></h3> <p>15.02.2014</p> <p>Получил электронное письмо о том, что моя заявка принята! Я буду на семинаре RG на следующей неделе!</p> <h3><span class="ez-toc-section" id="i-15">Первый день начинается…</span></h3> <p><div id="yandex_rtb_2" class="yandex-adaptive classYandexRTB"></div> <script type="text/javascript">if(rtbW>=960){var rtbBlockID="R-A-743929-3";} else{var rtbBlockID="R-A-743929-5";} window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_2",blockId:rtbBlockID,pageNumber:2,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","7683656859");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","7683656859");} g.setAttribute("data-ad-client","ca-pub-5948177564140711");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_2").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});window.addEventListener("load",()=>{var ins=document.getElementById("yandex_rtb_2");if(ins.clientHeight =="0"){ins.innerHTML=stroke3;}},true);</script>22.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/lawyers-age.ru/wp-content/uploads/8/d/e/8de51abfa2d9b1c0785dd14ba7680015.jpeg' /><noscript><img loading='lazy' src='/800/600/http/lawyers-age.ru/wp-content/uploads/8/d/e/8de51abfa2d9b1c0785dd14ba7680015.jpeg' /></noscript> 02.2014</p> <p>Сегодня первый день семинара Rails Girls. Мой тренер довольно странный, но, кажется, у всех нас уже установлены Rails и мы можем начать учиться.</p> </дел> </pre><p> Это ваши первые три записи в дневнике. Обратите внимание, как отображаются разные теги, и обратите внимание на повторяющуюся структуру.</p><p> <strong> COACH </strong> : Расскажите немного о тегах HTML и их семантическом значении.</p><h4><span class="ez-toc-section" id="_HTML-3"> Подробнее HTML </span></h4><p> Добавьте следующее до или после приведенных выше записей в дневнике (опять же, отрегулируйте по вкусу):</p><pre data-lang="erb"> <div> <h2><span class="ez-toc-section" id="i-16">Мои любимые сайты</span></h2> <ул> <li><a href="http://railsgirls.com">Rails Girls</a></li> <li><a href="https://en.wikibooks.org/wiki/Ruby_Programming">Викикниги</a></li> <li><a href="http://guides.rubyonrails.org">Руководства по Ruby on Rails</a></li> </ul> </div> <img class="lazy lazy-hidden" decoding="async" src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://railsgirls.com/images/rg-warsaw.png" /><noscript><img decoding="async" src="http://railsgirls.com/images/rg-warsaw.png" /></noscript><center><ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-5948177564140711" data-ad-slot="2646898692"></ins> <script>(adsbygoogle=window.adsbygoogle||[]).push({});</script></center> </pre><p> Это неупорядоченный список HTML с некоторыми элементами списка, содержащими привязки (ссылки) с гипертекстовыми ссылками (URL) на другие страницы.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/i.pinimg.com/736x/fe/9e/c8/fe9ec8ea7183a9c9a83d704e98a21071.jpg' /><noscript><img loading='lazy' src='/800/600/http/i.pinimg.com/736x/fe/9e/c8/fe9ec8ea7183a9c9a83d704e98a21071.jpg' /></noscript> За ним следует абзац, содержащий изображение, и источник изображения находится по указанному URL-адресу.</p><p> <strong> ТРЕНЕР </strong>: Объясните, как работает Интернет, и немного расскажите об элементах и ​​атрибутах HTML.</p><p> Вот ссылка на репозиторий со стилизованным базовым приложением, которое вы можете использовать.</p><h3><span class="ez-toc-section" id="_Rails"> Переход на Rails </span></h3><p> <strong> ТРЕНЕР </strong> : Если ваши ученики используют Windows, рассмотрите возможность использования Nitrous.IO в качестве основы для следующих частей.</p><h4><span class="ez-toc-section" id="_Rails-2"> Новое приложение Rails </span></h4><p> Откройте окно терминала (Командная строка в Windows), перейдите в каталог, где находятся ваши файлы (с помощью команды <code> cd </code>) и запустите <code> rails new diary </code> — это займет некоторое время и закончится создание нового приложения Rails. Запустите <code> cd diary </code>, чтобы перейти в каталог приложения.</p><p> <strong> ТРЕНЕР </strong> : Объясните, как перемещаться по каталогам и выполнять команды.</p><h4><span class="ez-toc-section" id="i-17"> Запуск сервера </span></h4><p> Один раз в дневнике <code> </code> запустите <code> rails server </code> и (после завершения запуска) перейдите по адресу http://localhost:3000 в браузере.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/i.pinimg.com/736x/3d/b6/7b/3db67ba0ba9f0789ee7a5317a31bc36c--planner--life-planner.jpg' /><noscript><img loading='lazy' src='/800/600/http/i.pinimg.com/736x/3d/b6/7b/3db67ba0ba9f0789ee7a5317a31bc36c--planner--life-planner.jpg' /></noscript> Вы должны увидеть страницу «Добро пожаловать на борт». Остановите сервер, нажав <code> ctrl-c </code>.</p><p> <strong> ТРЕНЕР </strong> : Объясните, что произошло и что выводится в окне терминала. Если сервер не запускается из-за отсутствия среды выполнения JavaScript, установите gem <code> therubyracer </code> и раскомментируйте соответствующую строку в <code> Gemfile </code> .</p><h4><span class="ez-toc-section" id="i-18"> Первый маршрут и вид </span></h4><p> Создайте контроллер и маршрут</p><p> Запустите <code> rails generate controller welcome index </code> — это создаст ваш первый контроллер и маршрут, ведущий к нему. Запустите сервер и перейдите по адресу http://localhost:3000, чтобы убедиться, что ваше приложение действительно поддерживает маршрут <code> /welcome/index </code>.</p><p> Остановите сервер и запустите <code> rake route </code>, чтобы просмотреть все маршруты, поддерживаемые вашим приложением.</p><p> <strong> COACH </strong> : Объясните URL-адреса и иерархию URL-адресов. Объясните, как URL-адреса в Rails сопоставляются с тем, «что происходит за кулисами».<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/heaclub.ru/tim/762a448cb107415e4bf1f2c257237ce4/bloknot.jpg' /><noscript><img loading='lazy' src='/800/600/http/heaclub.ru/tim/762a448cb107415e4bf1f2c257237ce4/bloknot.jpg' /></noscript></p><h4><span class="ez-toc-section" id="i-19"> Переместите представление в верхнюю часть сайта </span></h4><p> Отредактируйте файл <code> config/routes.rb </code> и раскомментируйте (удалите <code> # </code> спереди) строку <code> root 'welcome#index' </code> (это, вероятно, быть 7-й строкой). Это сделает корнем вашего приложения представление, отображаемое действием <code> Welcome#index </code>. Перейдите по адресу http://localhost:3000 и убедитесь, что главная страница вашего приложения теперь действительно служит этому представлению (а не странице «Добро пожаловать на борт»).</p><p> <strong> COACH </strong> : Объясните, почему главная страница приложения является корнем иерархии URL-адресов и что это страница, которую люди посещают, когда они просто вводят имя хоста в адресную строку браузера. ( т. е. список дневниковых записей и ссылки на сайты), заменив две строчки (на <code><h2></h2></code> и <code><p> </code> ) в представлении. Обновите браузер, чтобы убедиться, что страница действительно содержит правильное содержимое.</p><p> <strong> COACH </strong> : Объясните, что представление содержит только часть между <code><body> </code> и <code></body> </code> , так как остальная часть является общей для всего приложения и определена в другом месте.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/boxbat.ru/wp-content/uploads/1/2/1/121b549b559905a57de7f07f0b21d233.jpeg' /><noscript><img loading='lazy' src='/800/600/http/boxbat.ru/wp-content/uploads/1/2/1/121b549b559905a57de7f07f0b21d233.jpeg' /></noscript></p><h3><span class="ez-toc-section" id="i-20"> Итерация </span></h3><h4><span class="ez-toc-section" id="i-21"> Повторяющийся контент </span></h4><p> Если вы посмотрите на структуру списка ссылок, то увидите, что каждый элемент списка похож на другие — он содержит URL-адрес (куда ссылка должна вести пользователя при нажатии) и имя (то, что пользователь должен видеть и иметь возможность нажать). Вместо того, чтобы записывать ссылки в виде необработанного HTML (и, возможно, сделать ошибку с некоторыми из них), давайте немного абстрагируемся и пройдемся по набору пар URL-адрес и имя.</p><div id="yandex_rtb_1" class="yandex-adaptive classYandexRTB"></div> <script type="text/javascript">if(rtbW>=960){var rtbBlockID="R-A-743929-3";} else{var rtbBlockID="R-A-743929-5";} window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({renderTo:"yandex_rtb_1",blockId:rtbBlockID,pageNumber:1,onError:(data)=>{var g=document.createElement("ins");g.className="adsbygoogle";g.style.display="inline";if(rtbW>=960){g.style.width="580px";g.style.height="400px";g.setAttribute("data-ad-slot","7683656859");}else{g.style.width="300px";g.style.height="600px";g.setAttribute("data-ad-slot","7683656859");} g.setAttribute("data-ad-client","ca-pub-5948177564140711");g.setAttribute("data-alternate-ad-url",stroke2);document.getElementById("yandex_rtb_1").appendChild(g);(adsbygoogle=window.adsbygoogle||[]).push({});}})});window.addEventListener("load",()=>{var ins=document.getElementById("yandex_rtb_1");if(ins.clientHeight =="0"){ins.innerHTML=stroke3;}},true);</script> <p> Замените содержимое тегов <code><ul> </code> следующим:</p><pre data-lang="html"> <% @сайты = [ ["http://railsgirls.com", "Rails Girls"], ["https://en.wikibooks.org/wiki/Ruby_Programming", "Викиучебники"], ["http://guides.rubyonrails.org", "Руководства по Ruby on Rails"], ] %> <% для URL, имя в @websites %> <li><a href="<%= url %>"><%= имя %></a></li> <% end %> </pre><p> Обновите окно браузера, чтобы увидеть, есть ли на вашей странице те же ссылки.</p><p> <strong> COACH </strong> : Объясните, что произошло – что такое массив, что означают теги <code> <% </code> и <code> <%= </code> ERb (и чем они отличаются), как работает итерация.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/boxbat.ru/wp-content/uploads/1/e/6/1e623010cf0c2a144720896dec40d3dd.jpeg' /><noscript><img loading='lazy' src='/800/600/http/boxbat.ru/wp-content/uploads/1/e/6/1e623010cf0c2a144720896dec40d3dd.jpeg' /></noscript></p><p> Сохранение кода или данных (например, приведенного выше массива <code> @websites </code>) в представлениях — это просто, но это плохая практика, и в долгосрочной перспективе это может привести к ухудшению ситуации. Для начала переместим массив <code><center><ins class="adsbygoogle" style="display:block;height:250px" data-ad-client="ca-pub-5948177564140711" data-ad-slot="7192702265" data-ad-format="link" data-full-width-responsive="true"></ins> <script>(adsbygoogle=window.adsbygoogle||[]).push({});</script></center> @websites </code> из представления в контроллер. Удалите его из представления и поместите в <code> app/controllers/welcome_controller.rb </code> в методе <code> index </code>, поэтому он выглядит так:</p><pre data-lang="ruby"> class WelcomeController < ApplicationController индекс защиты @сайты = [ ["http://railsgirls.com", "Rails Girls"], ["https://en.wikibooks.org/wiki/Ruby_Programming", "Викиучебники"], ["http://guides.rubyonrails.org", "Руководства по Ruby on Rails"], ] конец end </pre><p> Обратите внимание, что после обновления окна вашего браузера ничего не должно измениться — это потому, что переменные, начинающиеся с @ (называемые «переменными экземпляра»), могут быть доступны как для представления, так и для контроллера.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/i.pinimg.com/736x/cd/07/4a/cd074a462a5ae2c9251b9d71bf883566--work-planner-life-planner.jpg' /><noscript><img loading='lazy' src='/800/600/http/i.pinimg.com/736x/cd/07/4a/cd074a462a5ae2c9251b9d71bf883566--work-planner-life-planner.jpg' /></noscript></p><p> <strong> COACH </strong> : Объясните связь между действием <code> WecomeController#index </code> и представлением; обратите внимание и подчеркните разницу между @-starting <code> @websites </code> и простым <code> url </code> или <code> name </code> .</p><h4><span class="ez-toc-section" id="i-22"> Создайте модель </span></h4><p> Теперь, когда ссылки на веб-сайты не являются жестко закодированными, давайте сделаем что-нибудь с дневниковыми записями. На этот раз мы не будем (ab) использовать простую структуру Ruby, такую ​​как массив, а правильную модель, которая представляет данные данной записи. Начнем с создания модели — запустите <code> rails генерирует модель Entry title:string date:datecontents:text </code> для создания модели <code> Entry </code>, которая может представлять запись в дневнике с заголовком, датой публикации и некоторым содержимым.</p><p> <strong> COACH </strong> : Объясните, что такое модели и поле <code>: введите нотацию </code> для их создания; при необходимости объясните разницу между типами <code> string </code> и <code> text </code>.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/lawyers-age.ru/wp-content/uploads/f/f/9/ff9db93265791b4569e4aa2d0b1cb85d.jpeg' /><noscript><img loading='lazy' src='/800/600/http/lawyers-age.ru/wp-content/uploads/f/f/9/ff9db93265791b4569e4aa2d0b1cb85d.jpeg' /></noscript></p><h4><span class="ez-toc-section" id="i-23"> Миграция базы данных </span></h4><p> Запустите <code> rails db:migrate </code> для миграции базы данных, чтобы ее структура содержала таблицу для записей.</p><p> <strong> COACH </strong> : Объясните, что такое базы данных (в абстрактных терминах, как сосуды для хранения данных нашего приложения и предоставления структур моделей) и зачем они нужны. Объясните, что вещи, которые находятся в памяти, не будут сохраняться по умолчанию, и их нужно сохранять явно, чтобы они были доступны при следующем запросе.</p><h4><span class="ez-toc-section" id="_Rails-3"> Поиграйте с моделью в консоли Rails </span></h4><p> Теперь, когда у нас есть модель, мы можем начать создавать экземпляры этой модели, т. е. настоящие записи дневника, которые не жестко закодированы в представлении HTML. Для этого мы изучим новый инструмент: консоль Rails. Начните с <code> rails console </code> и, как только он загрузится и покажет: вы получаете приглашение <code> >> </code>, создайте несколько записей:</p><pre data-lang="sh"> >> Entry.create "title" => "Отправлено приложение Rails Girls", "date" => Date.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> new(2014, 2, 1), "contents" => "Только что отправил заявку на семинар Rails Girls. Жду не дождусь, смогу ли я туда попасть!" … >> Entry.create "title" => "Принято!", "date" => Date.new(2014, 2, 15), "contents" => "Получено электронное письмо о том, что моя заявка принята! Я будь на семинаре RG на следующей неделе!" … >> Entry.create "title" => "Первый день начинается...", "date" => Date.new(2014, 2, 22), "contents" => "Сегодня первый день семинара Rails Girls , Мой тренер довольно странный, но, похоже, у нас у всех уже установлен Rails, и мы можем начать учиться». </pre><p> Обратите внимание, как консоль — точно так же, как <code> rails server </code> — показывает журнал того, что происходит в фоновом режиме. Вы всегда можете получить массив всех существующих записей через <code> Entry.all </code> .</p><p> <strong> ТРЕНЕР </strong>: Объясните, что происходит. Медленно.</p><h3><span class="ez-toc-section" id="i-24"> Просмотр сохраненного содержимого </span></h3><h4><span class="ez-toc-section" id="i-25"> Добавление экземпляров модели в существующее представление </span></h4><p> Отредактируйте действие <code> WelcomeController#index </code> (в файле <code> app/controllers/welcome_controller.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> rb </code>) и добавьте следующее до или после строк содержащий <code> @websites </code> определение:</p><pre data-lang="ruby"> @entries = Entry.all </pre><p> Отредактируйте вид <code> app/views/welcome/index.html.erb </code> и замените строки с записями дневника на следующие:</p><pre data-lang="erb"> <% для записи в @entries %> <h3></h3><%= entry.title %></h3> <p><%= запись.дата %></p> <p><%= entry.contents %></p> <% end %> </pre><p> <strong> ТРЕНЕР </strong> : Обсудите, что произошло; обсудите, каков порядок записей и как их можно изменить (скажем, по обратной дате) и где это должно происходить.</p><h4><span class="ez-toc-section" id="i-26"> Создать контроллер для записей дневника </span></h4><p> Теперь, когда у нас есть модель, нам нужно создать контроллер для обработки действий, связанных с экземплярами модели (создание новых записей, отображение, редактирование и удаление существующих). Запустите <code> rails generate controller Entries </code> — это должно сгенерировать класс <code> EntriesController </code>. Проверьте <code> rake route </code> — обратите внимание, что контроллера недостаточно, нам еще нужно указать URL-адреса на действия контроллера.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript></p><p> Отредактируйте <code> config/routes.rb </code> и добавьте строку <code> resources "entries" </code> где-нибудь внутри блока <code> Diary::Application.routes.draw </code>. Снова запустите <code> rake route </code>: обратите внимание, как теперь ваше приложение имеет всевозможные новые маршруты.</p><p> <strong> COACH </strong> : Объясните, как работают ресурсы маршрутов Rails и как они создают URL-адреса и сопоставляют их с действиями контроллера по умолчанию.</p><h4><span class="ez-toc-section" id="i-27"> Просмотр всех записей </span></h4><p> Как видно на рейке <code> маршрутов </code>, URL-адреса связаны с их относительными действиями контроллера. Давайте посмотрим, чего не хватает — посетите http://localhost:3000/entries в своем браузере. О-о, кажется, действие index отсутствует — давайте добавим его — откройте <code> app/controllers/entries_controller.rb </code> и добавьте следующий пустой метод внутри определения класса:</p><pre data-lang="ruby"> def index end </pre><p> Теперь обновите браузер — у нас больше нет проблемы «неизвестное действие», теперь у нас есть проблема «отсутствует шаблон».<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> Сохранить пустой файл как <code> app/views/entries/index.html.erb </code> (обратите внимание, что это точно так же, как файл <code> index.html.erb </code> в каталоге «добро пожаловать», но на этот раз он находится в каталоге «записи») и обновите браузер. снова — он должен отображать пустую страницу. Это хорошо, так как в данный момент наш вид совершенно пуст.</p><p> <strong> COACH </strong> : Объясните, как действия отображают связанные представления по умолчанию.</p><p> Теперь перейдите в файл <code> app/controllers/welcome_controller.rb </code> и найдите <code> WelcomeController#index </code> (тот, который начинается с индекса <code> по умолчанию </code>). Найдите строку, которая устанавливает переменную <code> @entries </code> (она должна начинаться с <code> @entries = </code> ) и скопируйте ее в <code> EntriesController#index </code> (то есть в метод <code> index </code> <code> EntriesController </code> , который можно найти в <code> app/controllers/entries_controller.rb </code> ).<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> Точно так же перейдите к представлению <code> app/views/welcome/index.html.erb </code> и скопируйте блок </code> @entries.each </code> (все строки с отступом до 9 совпадающих строк включительно).0063 end </code> ) в представление <code> app/views/entries/index.html.erb </code>. Обновите браузер: теперь он должен отображать список всех ваших записей в дневнике.</p><p> <strong> ТРЕНЕР </strong> : Объясните, что, несмотря на то, что это может показаться незначительным или нулевым прогрессом, есть существенное изменение: мы больше не работаем в контексте главной страницы нашего приложения, а только список дневниковых записей. (без ссылок на другие сайты, например).</p><h4><span class="ez-toc-section" id="i-28"> Вид одной записи </span></h4><p> Обратите внимание, как при запуске <code> rake route </code> , вывод говорит, что шаблон <code> /entries/:id(.:format) </code> сопоставляется с действием контроллера <code> entry#show </code>. Перейдите по адресу http://localhost:3000/entries/1 — URL-адрес вашей первой записи в дневнике; обратите внимание, как мы снова пропустили действие <code> EntriesController </code> .<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> Добавьте это (пока пустое) действие, затем обновите браузер и добавьте (тоже пустое) отсутствующее представление.</p><p> <strong> COACH </strong>: руководство по добавлению отсутствующего действия и просмотр при необходимости; убедитесь, что процесс (вплоть до расшифровки правильных <code> грабли маршрутов </code> строки) это хорошо понятно.</p><p> Теперь давайте выясним, как интерпретировать <code> 1 </code> в конце URL-адреса, чтобы отобразить правильную запись. Сделайте так, чтобы действие <code> EntriesController#show </code> выглядело так:</p><pre data-lang="ruby"> def show @entry = Entry.find(params["id"]) end </pre><p> Эта строка означает «взять параметр <code> id </code> и использовать его в методе <code> Entry.find </code> для поиска нужной записи». Теперь отредактируйте представление <code> app/views/entries/show.html.erb </code> и поместите туда следующее:</p><pre data-lang="erb"> <h3></h3><%= @entry.title %></h3> <p><%= @entry.date %></p> <p><%= @entry.contents %></p> </pre><p> Посетите http://localhost:3000/entries/1 и сравните его с http://localhost:3000/entries/2, чтобы увидеть, как используется <code>.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> params['id'] </code> означает, что отображаются разные записи дневника.</p><p> <strong> COACH </strong> : Объясните, что часть <code> :id </code> шаблона URL из <code> рейк-маршрутов </code> превращается в ключ для <code> параметры </code> хеш; обсудить, что еще можно найти в хэше <code> params </code>.</p><h4><span class="ez-toc-section" id="i-29"> Связывание записей </span></h4><p> Снова запустить <code> rake route </code>; обратите внимание, что строка для действия <code> entry#show </code> начинается с записи <code> </code> в столбце «префикс». Перейдите в представление <code> app/views/entries/index.html.erb </code> и измените строку, отвечающую за отображение заголовка, на следующую:</p><pre data-lang="erb"> <h3></h3><%= link_to(entry.title, entry_path(entry)) % ></h3> </pre><p> Обратите внимание, как мы используем метод <code> link_to </code>, который принимает два параметра: отображаемый текст (<code> entry.title </code>) и путь для ссылки. Проверьте источник страницы, чтобы узнать, каков путь для последующих заголовков.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> Обратите внимание, как путь создается путем вызова метода <code> entry_path </code> с записью <code> </code> в качестве аргумента.</p><p> <strong> COACH </strong> : Напомните, как выглядит HTML для ссылок. Объясните связь между <code> entry_path </code> и записью <code> 9.Префикс 0064 из <code> рейк-маршрутов </code> . Объясните, почему метод <code> entry_path </code> нуждается в аргументе <code> entry </code>. Объясните, что делает метод <code> entry_url </code> (и чем он отличается от метода <code> entry_path </code>), если хотите.</p><p> Теперь давайте попробуем вернуться с экрана ввода к указателю всех записей: отредактируйте шаблон <code> app/views/entries/show.html.erb </code> и добавьте ссылку на указатель записей, например:</p><pre data-lang="erb"> < p><%= link_to("Вернуться ко всем записям", entry_path) %></p> </pre><p> Еще раз обратите внимание, как префикс <code> записей </code> из <code> рейк-маршрутов </code> используется для создания имени метода <code> entry_path </code>.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> Обратите внимание, что этому методу не нужен параметр.</p><h3><span class="ez-toc-section" id="i-30"> Создание записей через пользовательский интерфейс </span></h3><h4><span class="ez-toc-section" id="i-31"> Добавление формы «новая запись» </span></h4><p> Теперь, когда у нас есть способ отобразить список всех записей и одну запись, давайте добавим способ создания новых записей в дневнике. Запустите <code> rake route </code> и попытайтесь выяснить, какой URL (и действие) отвечает за создание новой записи.</p><p> Перейти к индексу всех записей и добавить ссылку для создания новой записи:</p><pre data-lang="erb"> <%= link_to("Новая запись", new_entry_path) %> </pre><p> Щелкнуть по ссылке – добавить недостающее действие и просмотреть.</p><p> <strong> ТРЕНЕР </strong>: Убедитесь, что вы хорошо поняли этот процесс.</p><p> Отредактируйте вид <code> app/views/entries/new.html.erb </code> и вставьте его ниже:</p><pre data-lang="erb"> <%= form_for(Entry.new) do |form| %> <p><%= form.label("название") %></p> <p><%= form.text_field("название") %></p> <p><%= form.label("content") %></p> <p><%= form.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> text_area("content") %></p> <p><%= form.submit %></p> <% конец%> <p><%= link_to("Вернуться ко всем записям", entry_path) %></p> </pre><p> <strong> Примечание: </strong> мы можем пока пропустить метки</p><p> <strong> COACH </strong> : Покажите, как выглядит HTML-код, созданный помощником <code> form_for </code>, и попытайтесь объяснить, как он работает.</p><h4><span class="ez-toc-section" id="i-32"> Обработка формы «новая запись» </span></h4><p> Обновите браузер и попробуйте добавить новую запись — вы должны увидеть известную к настоящему времени ошибку «неизвестное действие». Добавьте действие в <code> EntriesController </code> , но для начала отобразим, что получает действие:</p><pre data-lang="ruby"> def create визуализация (: текст => params.inspect) конец </pre><p> Обновите браузер и проверьте, какие именно параметры получает действие.</p><p> <strong> COACH </strong> : Объясните, как заполнение текстового поля и текстовой области и отправка формы завершаются отправкой всех параметров в действие контроллера. Объясните, что делает .<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> inspect.</p><h4><span class="ez-toc-section" id="i-33"> Создание и сохранение новой записи </span></h4><p> Отредактируйте действие <code> create </code> и придайте ему следующий вид:</p><pre data-lang="ruby"> def create entry_params = параметры["запись"] запись = Entry.create(entry_params) redirect_to(entry_path(entry)) конец </pre><p> Обратите внимание, как мы пытаемся получить параметры новой записи (ее название и содержимое) из хэша <code> params </code> и затем создать из них новую запись, как в консоли. Попробуйте отправить форму еще раз — обратите внимание, что мы все еще не там, так как мы получаем <code> ActiveModel::ForbiddenAttributesError </code>.</p><ul><li> Примечание: мы можем пропустить strong_parameters в начале, чтобы приложение не было защищено от внедрения параметров.</li><li> config.action_controller.permit_all_parameters = правда 9да, но его скоро уберут.</li><li> возможно не до мастерских 😉</li></ul><p> Эта ошибка связана с мерами безопасности — относительно просто отправить POST любые параметры, которые хочет пользователь, а Rails защищает нас от мошеннического пользователя, который захочет установить параметры, которые они не должны устанавливать (например, «id») .<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> Нам нужно объявить, какие параметры могут быть установлены пользователем; измените первую строку действия <code> create </code> на следующую:</p><pre data-lang="ruby"> entry_params = params["entry"].permit("title", "contents") </pre><p> Теперь попробуйте снова отправить форму — на этот раз она должна работать, и вы должны быть перенаправлены на только что созданную запись.</p><p> <strong> COACH </strong> : Убедитесь, что выбор параметров новой записи из <code> params </code> хорошо понятен и принято, что определенные поля должны быть разрешены явно. Редактирование через пользовательский интерфейс</p><h4><span class="ez-toc-section" id="i-34"> Добавление формы «редактировать запись» </span></h4><p> Теперь, когда мы можем просматривать и создавать записи, давайте также добавим возможность их редактирования. Выполнить <code> рейк-маршрута </code> и попробуйте угадать, какой маршрут отвечает за редактирование записи.</p><p> <strong> ТРЕНЕР </strong>: Удостоверьтесь, что вы уже все поняли.</p><p> Отредактируйте представление <code> app/views/entries/show.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> html.erb </code> и добавьте где-нибудь следующую строку:</p><pre data-lang="erb"> <p><%= link_to("Редактировать эту запись", edit_entry_path(@entry)) %>< /p> </pre><p> Обновить представление данной записи и щелкнуть ссылку. Добавьте недостающее действие и пустой вид.</p><p> <strong> ТРЕНЕР </strong> : Опять же, убедитесь, что все правильно поняли.</p><p> Давайте сначала убедимся, что наше действие <code> edit </code> предоставляет правильную запись для представления. Убедитесь, что действие <code> edit </code> выглядит точно так же, как действие <code> show </code> — т. е. оно выбирает правильную запись на основе идентификатора из URL:</p><pre data-lang="ruby"> def edit @entry = Entry.find(params["id"]) end </pre><p> Теперь скопируйте содержимое представления <code> app/views/entries/new.html.erb </code> в представление <code> app/views/entries/edit.html.erb </code>, но измените первую строку так, чтобы это была форма для этой конкретной записи — и, при желании, добавить ссылку на экран показа этой записи:</p><pre data-lang="erb"> <%= form_for(@entry) сделать |форма| %> <p><%= form.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> label("название") %></p> <p><%= form.text_field("название") %></p> <p><%= form.label("content") %></p> <p><%= form.text_area("content") %></p> <p><%= form.submit %></p> <% конец%> <p><%= link_to("Вернуться к этой записи", entry_path(@entry)) %></p> <p><%= link_to("Вернуться ко всем записям", entry_path) %></p> </pre><p> <strong> ТРЕНЕР </strong>: Убедитесь, что все это хорошо поняли.</p><p> Теперь попробуйте отправить форму – какое действие все еще отсутствует? Создайте его в контроллере:</p><pre data-lang="ruby"> def update entry_params = params["запись"].permit("заголовок", "содержимое") запись = Entry.find (параметры ["id"]) entry.update(entry_params) redirect_to(entry_path(entry)) end </pre><p> Проверьте, все ли это работает и можно ли теперь редактировать записи.</p><p> <strong> COACH </strong>: Убедитесь, что обновление <code> 9Содержание действия 0064 хорошо понятно — от разрешения параметров через поиск записей до перенаправления на правильный путь.</p><h3><span class="ez-toc-section" id="i-35"> Другие идеи </span></h3><p> Поиграйте со своим приложением! Вот еще несколько идей, которые вы можете добавить:<li> ссылок для редактирования записи прямо из указателя записей,</li><li> способ удалить запись,</li><li> способ редактировать даты въезда,</li><li> модель отслеживания адресов и названий сайтов (список на главной странице),</li><li> установка дат записи в будущее и не отображение будущих записей в индексе, пока не наступит их день,</li><li> автоматическое встраивание URL-адресов видео,</li><li> поддержка разных авторов записей,</li><li> поддержка различных категорий записей,</li><li> загрузка и отображение изображений.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript></li></ul><hr/><h3><span class="ez-toc-section" id="i-36"> Другие руководства </span></h3><ul><li> Удобная шпаргалка по Ruby, Rails, консоли и т. д.</li><li> Руководство 1: Руководство по установке Rails</li><li> Руководство 2. Создайте свое первое приложение</li><li> Руководство 3. Разместите свое приложение на GitHub</li><li> Руководство 4. Разместите свое приложение в Интернете с помощью…<ul><li> Героку</li><li> OpenShift</li><li> Энинин</li><li> Машинный парк</li><li> Подготовка к развертыванию с Phusion Passenger</li></ul></li><li> Руководство 5: Разрешить комментарии к вашему приложению</li><li> Руководство 6. Добавление дизайна с помощью HTML и CSS</li><li> Руководство 7. Создание эскизов с помощью Carrierwave</li><li> Руководство 8. Добавление аутентификации (учетных записей пользователей) с помощью Devise</li><li> Руководство 9: Добавление фото профиля с помощью Gravatar</li><li> Руководство 10. Улучшите дизайн с помощью HTML и CSS</li><li> Руководство 11: Непрерывное развертывание<ul><li> Протестируйте свое приложение с помощью RSpec</li><li> Упрощение ваших тестов с помощью Shoulda Matchers</li><li> CD с Travis-CI</li><li> Компакт-диск с Codeship</li></ul></li><li> Руководство 12.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript> Создание приложения для голосования в Sinatra</li><li> Руководство 13. Создание приложения-дневника на Ruby on Rails (Текущая страница!)</li><li> Руководство 14. Добавление серверной части в ваше приложение (страницы администрирования)</li><li> Руководство 15: ознакомьтесь с дополнительными пояснениями к приложению</li></ul><h2><span class="ez-toc-section" id="_WBUR"> 'У меня тряслись руки': Девушка делится дневником первых дней войны в Украине аудиоплеер WBUR на вашем сайте </span></h2></h4><p> <iframe class="lazy lazy-hidden" scrolling="no" frameborder="no" data-lazy-type="iframe" data-src="https://player.wbur.org/hereandnow/2022/10/25/ukraine-war-diary-kids" ></iframe><noscript><iframe scrolling="no" frameborder="no" src="https://player.wbur.org/hereandnow/2022/10/25/ukraine-war-diary-kids" ></iframe></noscript> 9</li><li> Эшли Локк (Ger Holland)<p> Более 7 миллионов беженцев зафиксировано по всей Европе из-за войны на Украине.</p><p> Ведущее агентство ООН по делам беженцев говорит, что две трети тех, кто покинул Украину, — дети, но мы не часто слышим их истории. Ева Скалецкая, 12-летняя девочка из Украины, ведет дневник с первых дней войны. Она одна из счастливиц, которым удалось выбраться со своей бабушкой, но она не знает, когда можно будет безопасно вернуться.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript></p><p> Ее дневник был адаптирован для новой книги под названием "Вы не знаете, что такое война: дневник девушки из Украины". Скалецкая пишет о приступе паники, когда она бежала домой с бабушкой в ​​первый день войны.</p><p> Выйдя из дома, Скалецкая и другие дети из ее блока играли в игры, чтобы отвлечься, но не могли поделиться своими чувствами.</p><p> «Было больно делиться своими эмоциями, но мы старались поддерживать друг друга», — говорит Скалецкая. «Я начала вести дневник, потому что мне было проще записывать свои эмоции, все, что со мной происходило через страх, который я пережила».</p> Ева Скалецкая и ее бабушка Ирина Скалецкая. (Гер Холланд)<p> Скалецкую воспитывала бабушка в Харькове. Благодаря друзьям ее бабушки они перебрались из Украины в Ирландию. Сейчас она ходит в школу в Ирландии, которая сильно отличается от Украины. Погода меняется чаще, чем она привыкла, и теперь ей нужно знать английский.</p><p> Кто-то из друзей Скалиецкой остался в Харькове. Она поддерживает связь с ними посредством текстовых сообщений.<img class="lazy lazy-hidden" loading='lazy' src="//starwars-galaxy.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='' /><noscript><img loading='lazy' src='' /></noscript></div></article><div id="comments" class="fbox comments-area"><div id="respond" class="comment-respond"><h3 id="reply-title" class="comment-reply-title">Добавить комментарий <small><a rel="nofollow" id="cancel-comment-reply-link" href="/raznoe/kak-oformit-ezhednevnik-vnutri-dlya-vochek-oformlenie-ezhednevnika-kak-vesti-bloknot.html#respond" style="display:none;">Отменить ответ</a></small></h3><form action="https://starwars-galaxy.ru/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Ваш адрес email не будет опубликован.</span> <span class="required-field-message">Обязательные поля помечены <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Комментарий <span class="required">*</span></label><textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required></textarea></p><p class="comment-form-author"><label for="author">Имя <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p><p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p><p class="comment-form-url"><label for="url">Сайт</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Отправить комментарий" /> <input type='hidden' name='comment_post_ID' value='41465' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /></p></form></div></div></main></div><aside id="secondary" class="featured-sidebar widget-area"><section id="categories-3" class="fbox swidgets-wrap widget widget_categories"><div class="sidebar-headline-wrapper"><div class="sidebarlines-wrapper"><div class="widget-title-lines"></div></div><h4 class="widget-title">Рубрики</h4></div><ul><li class="cat-item cat-item-8"><a href="https://starwars-galaxy.ru/category/dlya-nachinayushhih">Для начинающих</a></li><li class="cat-item cat-item-6"><a href="https://starwars-galaxy.ru/category/kak-risovat">Как рисовать</a></li><li class="cat-item cat-item-4"><a href="https://starwars-galaxy.ru/category/karandash">Карандаш</a></li><li class="cat-item cat-item-5"><a href="https://starwars-galaxy.ru/category/poetapno">Поэтапно</a></li><li class="cat-item cat-item-3"><a href="https://starwars-galaxy.ru/category/raznoe">Разное</a></li><li class="cat-item cat-item-1"><a href="https://starwars-galaxy.ru/category/sovety">Советы</a></li><li class="cat-item cat-item-9"><a href="https://starwars-galaxy.ru/category/srisovka">Срисовка</a></li><li class="cat-item cat-item-7"><a href="https://starwars-galaxy.ru/category/uroki">Уроки</a></li></ul></section></aside></div></div><footer id="colophon" class="site-footer clearfix"><div class="content-wrap"></div><div class="site-info"> 2025 © Все права защищены.</div></div></footer></div><div id="smobile-menu" class="mobile-only"></div><div id="mobile-menu-overlay"></div> <noscript><style>.lazyload{display:none}</style></noscript><script data-noptimize="1">window.lazySizesConfig=window.lazySizesConfig||{};window.lazySizesConfig.loadMode=1;</script><script async data-noptimize="1" src='https://starwars-galaxy.ru/wp-content/plugins/autoptimize/classes/external/js/lazysizes.min.js'></script> <!-- noptimize --> <style>iframe,object{width:100%;height:480px}img{max-width:100%}</style><script>new Image().src="//counter.yadro.ru/hit?r"+escape(document.referrer)+((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+";"+Math.random();</script> <!-- /noptimize --></body></html>