Новое приложение 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 %>
Страница загружается в:
Когда вы нажимаете «Удалить», предупреждение не отображается:
Ожидаемый результат: • Оповещение, подтверждающее действие кнопки.
Фактический результат: • Предупреждение не отображается.
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
драгоценный камень. Я нашел рабочее решение с помощью этих частей:
- Добавьте это в
application.html.erb
файл:<%= javascript_include_tag "turbo", type: "module" %>
- Добавлять
gem "turbo-rails", "~> 1.0"
в ваш Gemfile - Бегать
bundle install
- Бегать
bin/rails turbo:install
Примечание: не уверен, необходим ли этот последний шаг, но я следовал инструкциям отсюда .
Используя эти шаги, код из руководства по рельсам работает вместе с диалоговым окном подтверждения.