Задать вопрос
Ruby on Rails
Местоположение
Россия

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (9)
  • Есть ли смысл делать SPA?

    nikolaokonesh
    @nikolaokonesh
    Не курю не пью
    Для предварительной быстрой разработки: Ruby on Rails + Stimulusjs + Acton Cable
    Дальнейшая поддержка: Ruby on Rails Api + Svelte или vue.
    Ответ написан
    Комментировать
  • Как подгружать чат на страницу после загрузки страницы?

    nikolaokonesh
    @nikolaokonesh
    Не курю не пью
    Вот довольно простой метод, так к примеру набросок, использовал setTimeout() для загрузки комментариев:
    show.html.erb
    <div class="d-block" id="comments-show-columns">
                <div id="open_comments" class="mt-4">
                  <div data-controller="comments">
                    Загрузка комментариев...
                    <%= link_to url_for(open: 'true'), class: 'hidden', remote: true, data: {target: "comments.opencomment"} do %>
                    <% end %>
                  </div>
                </div>
              </div>


    show.js.erb
    <% if params[:open] %>
      var opening = document.querySelector("#open_comments")
      var pagin = document.querySelector("#comments-show-paginator")
    
      pagin.classList.toggle("hidden")
      opening.innerHTML = ('<%=j render(partial: "comments/comment", collection: @comments, locals: {full: true}, continue_thread: 10) %>')
    <% end %>


    app/javascript/controllers/comments_controller.js
    import { Controller } from "stimulus";
    
    export default class extends Controller {
      static targets = ["opencomment"]
    
      connect() {
        setTimeout(() => this.opencommentTarget.click(), 500 )
      }
    
    }


    Так же используйте data-turbolinks-permanent чтобы визуально чат не загружался вновь при рендеринге страницы и так же айди open_comments должен содержать id страницы типа open_comments_<%= post.id %>.
    Может есть способы другие то было бы интересно посмотреть.
    Ответ написан
    1 комментарий