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

Поэтому, когда я начал работать с crud-методом create, я перешел от мысли, что это очень просто, к тому, что я был перегружен всеми этапами, которые в него входят, и думал, что это сложно, хотя на самом деле это не так! Первый шаг в создании любого метода — это подумать о том, какую проблему вы пытаетесь решить, и какие необходимые шаги необходимо предпринять. Псевдокодирование всегда помогает не сбиться с пути и не отвлекаться на другую задачу. поэтому сначала задайте себе определенные вопросы, например, какую проблему вы пытаетесь решить или какую функцию вы пытаетесь создать 2, какие шаги вы должны предпринять в первую очередь, поэтому в этом случае мы будем создавать метод создания для приложения rails . поэтому сначала вам нужно будет создать новый экземпляр того, что вы создаете. Я буду использовать экземпляр класса Song.

  1. New создает экземпляр элемента в памяти.
def new
   @song = Song.new
end

2. Метод create сохраняет экземпляр в базе данных.

def create
   @song = Song.create(song_params)
end

Хеш params позволяет передавать введенные значения из формы, пока форма направляется в метод create/new. Существует несколько способов записи параметров: вы можете либо записать их, либо использовать строгие параметры.

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

def create
   @song = Song.create(song_params)
   redirect _to song_path(@song)
end

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

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

def new
  @song = Song.new
  If @song.valid?
  @song.save
end

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

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

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

def edit
 
    @song = Song.find(params[:id])
end

Метод обновления

  1. Найдите экземпляр, который вы хотите обновить, используя хэш идентификатора params.
def update
   @song = Song.find(params[:id]
end

2. Затем вы захотите обновить этот экземпляр и передать ему обновленные параметры из формы

def update
   @song = Song.find(params[:id]
   @song.update(song_params)
end

3. Затем вам нужно указать, что перенаправлять на страницу показа экземпляров.

def update 
   @song = Song.find(params[:id]
   @song.update(song_params)
   Redirect_to song_path(@song)
end

Это довольно просто, когда вы понимаете, что шагов, которые вы предпринимаете, кажется много, но все это имеет смысл

Сначала создайте или найдите экземпляр для любого метода

Вторая переадресация на нужную страницу

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

Удалить метод

  1. Найдите экземпляр, который хотите удалитьe
def delete
   @song = Song.find(params[:id]
end

2. Уничтожить

def delete
  @song = Song.find(params[:id]
  @song.destroy
end

3. Перенаправление на страницу, которую вы хотите отобразить. Он будет перенаправлен на новый путь к песне.

def delete
   @song = Song.find(params[:id]
   @song.destroy
   
   redirect_to new_song_path
end

Помните, если у вас возникли проблемы с определением пути, по которому вы хотите идти, просто перейдите к маршрутам rails и проверьте свои маршруты!

Помощники маршрутов Rails

Что такое помощники маршрутов (также известные как помощники URL)… задумывались ли вы когда-нибудь о том, как, когда вы нажимаете на любую ссылку на веб-странице, она перенаправляется на другую страницу, затем вы нажимаете другую ссылку на этой странице, и вы получить перенаправление на другую страницу. Это может продолжаться вечно! Каждая веб-страница в Интернете имеет связанные маршруты. Помощники маршрутов Rails сделаны так, чтобы код был читабельным. Таким образом, все это стало возможным благодаря помощникам маршрутов, которые вы также можете жестко закодировать, но это делает ваш код склонным к нарушению преимущества помощников маршрутов в том, что они являются динамическими, особенно потому, что они являются методами, а не просто строкой. код. Вы можете легко передать ему аргумент вместо использования интерполяции строк, которая часто вызывает ошибки и требует очень мало логики, потому что есть команда, которая помогает вам с маршрутами. Если вы запускаете маршруты rails, вы получите список всех имеющихся у вас маршрутов, а также все остальное, что вам нужно.

posts GET /posts(.: format) posts#index
post GET /posts/:id(.:format) posts#show

1. Запись первого столбца — это префикс вспомогательного метода маршрута, который можно использовать во всем приложении.

2. Второй столбец – команда HTTP.

3, в третьем столбце показан путь к маршруту и ​​параметры, которые необходимо передать этому маршруту.

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

Обратите внимание, что index отличается от show в ваших маршрутах, что означает, что show принимает аргумент, поэтому, если вы пытаетесь перенаправить на страницу show, вам нужно указать свой путь в качестве аргумента post_path(@post) at post будет возьмите идентификатор из экземпляра сообщения и используйте конкретный идентификатор, который был передан через этот параметр.

Словарная шпаргалка по Ruby on rails

Понимание этих словарных слов поможет вам стать лучшим рубистом, а если вы новичок, это поможет вам познакомиться с языком, чтобы вы не потерялись, когда увидите или услышите некоторые из этих терминов

  1. Символ. Символ — это самый простой объект ruby, который вы можете создать. Это просто имя и внутренний идентификатор. Перед символом стоит двоеточие. пример: :song.

2. Оператор if- Наиболее часто используемый в Ruby условный оператор, если выражение оценивается как истинное, тогда интерпретатор ruby ​​выполнит оператор puts, следующий за оператором if.

3. Логические значения. логическое значение — это значение, используемое в логическом операторе, чтобы сказать, считается ли что-то истинным или ложным.

4. Пока цикл выполняет оператор или код до тех пор, пока данное условие не станет истинным.

5. Method-метод, представляющий собой набор выражений, который возвращает значение.

6. Переменная. Переменные — это места, в которых хранятся данные, которые будут использоваться в программе.

7. Тернарный оператор — используется для возврата значения на основе результата бинарного условия.

8. Оператор взрыва. оператор взрыва — это метод, который используется для возврата логических значений и возвращает истинность или ложность исходной части данных.

9. Nil-nil — это специальный тип данных, который ничего не значит. это эквивалентно ничему или ничему.

10. Перечислители — класс, допускающий как внутреннюю, так и внешнюю итерацию.

11. Enumerable. В ruby ​​мы называем объект перечисляемым, когда он описывает набор элементов и метод для циклического обхода каждого из них.

12. Строка. строка представляет собой последовательность из одного или нескольких символов, которая может состоять из букв, цифр или символов.

13. Блок. блок представляет собой оператор пути или группировки и может появляться только в исходном коде рядом с вызовом метода: блок записывается в той же строке, что и последний параметр вызова метода (или закрывающая скобка, или список параметров).

14. Хэш — — тип данных ruby, лучший способ описать его — это как словарь, в котором хранится пара ключ-значение.

15. Массив — это тип данных в ruby, это набор элементов, которые не имеют определенного порядка.

16. Итерация. Взаимодействие похоже на просмотр данных. Думайте об этом как о фильтре.