Новое приложение Rails 7 Turbo не показывает, что предупреждающие сообщения data-turbo-confirm не срабатывают (turbo-rails 7.1.0 и 7.1.1)

Новое приложение Rails 7, созданное в 2021 или 2022 году, когда я нажимаю на форму с data-turbo-confirm, предупреждающее сообщение не отображается.

      <%= form_with url: root_path(),  data: {'turbo-confirm': "Are you sure you want to submit this form?"},
               method: :delete do |f| %>
  <%= f.submit "Delete".html_safe, class: "delete-apple-button btn btn-primary btn-sm" %>
<% end %>


<br />
<%= turbo_frame_tag "apples-list"   do %>
  nothing has happened yet
<% end %>

Созданный HTML

Страница загружается в:

Когда вы нажимаете «Удалить», предупреждение не отображается:

Ожидаемый результат: • Оповещение, подтверждающее действие кнопки.

Фактический результат: • Предупреждение не отображается.

3 ответа

вы можете использовать js для этого.

код работает для меня.

      function confirmDestroy(message) {
  if (!confirm(message)) {
    return false;
  }
}
      <div>
  <%= link_to "Edit this post", edit_post_path(@post) %> |
  <%= link_to "Back to posts", posts_path %>

  <%= button_to "Destroy this post", @post, method: :delete, onclick: "return confirmDestroy('Are you sure want destroy this post?')" %>
</div>

Это происходит, если у вас были локально установлены гем версии 7.1.0 или 7.1.1 для турборельсов

Эти номера драгоценных камней были случайно отправлены в Rubygems в октябре, а затем удалены. Однако, поскольку упаковщик по умолчанию использует наибольшее количество драгоценных камней Rails при настройке нового приложения rails, он выберет версию turbo-rails 7.1.0 или 7.1.1, которая будет отображать этот недостаток.

Драгоценные камни были извлечены, так что это касается только вас, если вы разрабатывали приложения для рельсов в период с октября 2021 года до даты извлечения.

ЧТОБЫ ПОИСКАТЬ ВАШ КОМПЬЮТЕР: gem uninstall turbo-rails

Bundler предложит вам, какую версию удалить:

Вам нужно будет повторить этот шаг, если у вас установлены обе версии gem.

Тогда упаковщик не будет создавать новые приложения с этой версией.

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

      gem "turbo-rails", "~> 1.0"

Я столкнулся с этой же проблемой, когда выполнял руководство по Ruby on Rails здесь.

Где-то в ходе моих экспериментов я наткнулся на упоминание оturbo-railsдрагоценный камень. Я нашел рабочее решение с помощью этих частей:

  1. Добавьте это вapplication.html.erbфайл:
            <%= javascript_include_tag "turbo", type: "module" %>
    
  2. Добавлятьgem "turbo-rails", "~> 1.0"в ваш Gemfile
  3. Бегатьbundle install
  4. Бегатьbin/rails turbo:install
    Примечание: не уверен, необходим ли этот последний шаг, но я следовал инструкциям отсюда .

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

Другие вопросы по тегам