Подтвердить что ты не робот

: подтвердить, что рельсы не работают

Я только начал кодирование в рубине на рельсах, и я слежу за гидом, который использует более устаревшую версию рельсов, чем я использую. Я использую 3.2.12

Это мой код:

<%= button_to 'Destroy', product, :method => "delete", :confirm => 'Are you sure?'  %>

Из того, что я понимаю, это символы, которые передаются на рельсы, которые затем преобразуются в действие html или javascript, которое затем всплывает окно сообщения и удаляет объект, если это применимо. Вышеупомянутый код уничтожает объект, но он не отображает окно подтверждения. Почему это? Кроме того, у меня сначала было следующее:

<%= link_to 'Destroy', product, :method => "delete", :confirm => 'Are you sure?'  %>

Поле подтверждения не появляется ни при каких обстоятельствах, используя link_to или button_to. Ниже представлен html при проверке с помощью инспектора Chrome. jquery и jquery-ujs также загружаются, поэтому я не уверен, куда идти отсюда.

<input name="_method" type="hidden" value="delete">
<input data-confirm="Are you sureeee?" type="submit" value="Destroy">
<input name="authenticity_token" type="hidden" value="Q2xicqELHYHtrwarbtPBe5PT2bZgWV5C+JdcReJI8ig=">

Спасибо!

4b9b3361

Ответ 1

Мне нужно было добавить мой атрибут подтверждения внутри атрибута data, чтобы заставить его работать. Я использую рельсы 4 с бутстрапом. Надеюсь, это поможет кому-то другому, у кого есть эта проблема.

link_to 'Delete', @rule, method: :delete, data: { confirm: 'Are you sure you want to delete this alert?' }

Ответ 2

Это зависит от jQuery, убедитесь, что у вас есть следующее:

в вашем Gemfile

group :assets do
  gem 'jquery-rails'
end

в вашем файле /javascripts/application.js, перед строкой //= require_tree .

//= require jquery
//= require jquery_ujs

Ответ 3

Разница между link_to и button_to - это HTTP-глагол. link_to выдает запросы GET и button_to вызывает запросы POST. При маршрутизации RESTful действие delete представляет собой запрос POST для контроллера /id. Если вы выдаете GET контроллеру /id, он отправляется в действие show.

AIUI, link_to с чем-либо, кроме глагола GET, является плохой идеей. Один, щелчок правой кнопкой не сохраняет глагол. Во-вторых, вы не хотите, чтобы боты, сканирующие страницу, следили за ссылкой и тем самым запускали действие delete, хотя вам, вероятно, необходимо войти в систему, чтобы фактически изменить базу данных.

Ответ 4

Чувствую себя довольно глупым, но adblock блокирует окно сообщения. Извини за это. Теперь все хорошо, я просто отключил рекламный блок.

Ответ 5

У меня есть блокировщик всплывающих окон, работающий в Chrome. Я просто белый http://localhost:3000, и это сработало для меня.