Допустим, на странице есть список из записей
@articles и кнопка "Создать новый". После создания в этот список должна добавиться новая запись.
Rails Guides в CRUD предлагает редирект на саму запись:
def create
@article = Article.new(title: "...", body: "...")
if @article.save
redirect_to @article
else
render :new, status: :unprocessable_entity
end
end
Но мне просто нужно обновить текущий список. Поэтому нашел следующее:
def create
@article = Article.new(article_params)
respond_to do |format|
if @article.save
format.html { redirect_to articles_url }
else
format.html { render :new, status: :unprocessable_entity }
end
end
end
Т.е. редирект на страницу, на которой я уже нахожусь, по сути - перезагрузка страницы. Я подумал, что с таким подходом производится какое-нибудь сравнение контента страницы до обновления и после и новая страница перезагружается частично. Однако, нет, полностью вся страница перезагружается так, как будто открывается впервые.
Теперь вопрос: на моей странице есть огромная таблица, инициализация которой может занимать секунд 20-30. Если я буду следовать такому красивому коду, то пользователь будет страдать после каждого "создания чего-либо" на странице. Это так и должно быть что ли?
Получается, что единственный способ не перезагружать всю страницу - это только remote запросы и js колбэки, типа такого -
https://stackoverflow.com/questions/30008003/appen.... Или есть что-то еще? Кому вообще может понадобится полное обновление страницы и зачем?