Это было сложное задание, но я был очень доволен своим готовым приложением. Я создал два JS-файла в своем каталоге App/Javascript (Book.js и Author.js), которые я использовал для своего приложения с большей частью кода в первом, поскольку я повторно использовал шаблоны показа книг на моей странице author#index при отображении книги на событие клика. Я предоставил краткий обзор дополнений к моему приложению для тех, кто заинтересован.

Есть много способов организовать эти файлы, но у меня был $(document).ready() для запуска одного метода с именем listenForIndex(), который прослушивал событие нажатия на кнопку, которую я добавил для запуска другого метода с именем getBooks(), который отображает индекс книги. Метод getBooks() после получения ответа JSON использует forEach для создания нового объекта Book, который создается с теми же свойствами, что и в представлении Rails.

Мне нужно было использовать атрибуты данных для передачи идентификатора книги при определении правильного порядка для кнопок «следующая/предыдущая» для перетасовки. Мне также понадобился атрибут данных для передачи author_id в качестве аргумента для запроса формы новой книги. Это была самая сложная часть задания, так как у меня возникла проблема с CORS, и мне пришлось потратить много времени на StackOverflow в поисках помощи для ее решения. Я сохранил author_id как переменную для повторного использования в форме, которая была вставлена ​​в прослушиватель событий, чтобы исправить проблему с областью действия, которая возникла у меня при попытке сохранить ее.