2013-10-09 3 views
0
<%= link_to image_tag("icon_delete.png", :border => 0), user, method: :delete ,data: { confirm: 'Are you sure delete ' + user.email } %> 

Когда пользователь нажимает на эту ссылку, я хочу создать диалоговое окно подтверждения, а не просто показывать confirm('Are you are').Диалог подтверждения настройки Rails

Я читал много потоков, например http://lesseverything.com/blog/archives/2012/07/18/customizing-confirmation-dialog-in-rails/. Однако я попал в тему Sprockets::EncodingError.

Любое лучшее решение?

UPDATE

Все в порядке, прежде чем реализовать диалог настроить подтверждение После кодирования успешно, на этот раз

<%= link_to image_tag("icon_delete.png", :border => 0), user, method: :delete ,data: { confirm: 'Are you sure delete ' + user.email } %> 

На самом деле, когда я нажимаю на значок удаления, не всплывающего шоу и эта связь не call destroy() в UserController. Он называется show() на UserController. Что здесь происходит?

$.rails.allowAction = (link) -> 
return true unless link.attr('data-confirm') 
$.rails.showConfirmDialog(link) # look bellow for implementations 
false # always stops the action since code runs asynchronously 

$.rails.confirmed = (link) -> 
link.removeAttr('data-confirm') 
link.trigger('click.rails') 


$.rails.showConfirmDialog = (link) -> 
message = link.attr 'data-confirm' 
html = """ 
    <div class="modal" id="confirmationDialog"> 
     <div class="modal-header"> 
     <a class="close" data-dismiss="modal">×</a> 
     <h3>Are you sure Mr. President?</h3> 
     </div> 
     <div class="modal-body"> 
     <p>#{message}</p> 
     </div> 
     <div class="modal-footer"> 
     <a data-dismiss="modal" class="btn">Cancel</a> 
     <a data-dismiss="modal" class="btn btn-primary confirm">OK</a> 
     </div> 
    </div> 
    """ 
$(html).modal() 
$('#confirmationDialog .confirm').on 'click', -> $.rails.confirmed(link) 

route.rb Файл корень: к => "пользователей # индекс"

devise_for :users, :controllers => {:registrations => "users"} 
resources :users 
match '/admin', to: 'users#admin', via: 'get' 
+0

Вы действительно не должны ... Построение собственных диалогов - ужасная практика. Вы только сделаете свой сайт менее мобильным/доступным. – meagar

+0

Мой клиент хочет, чтобы мы настраивали диалоговое окно подтверждения. Кроме того, я думаю, что это делает мой сайт более дружественным. – chinh

+0

Это не связано с символом @ в письме? – DickieBoy

ответ

0

Похоже, это тот же самый вопрос, что вы смотрите. Похоже, решение заключается в том, чтобы открыть .js-файл с помощью текстового редактора и сохранить его как кодировку UTF-8.

Перейдите в меню «Сохранить с кодировкой» и выберите «UTF-8».

В Sublime Text 2 это в файле> Сохранить с кодировкой> UTF-8.

+0

Я уже сделал это. Но видел, как не работает? – chinh

+0

попробуйте добавить это -> Encoding.default_external = 'UTF-8' внутри config.rb – jimagic

+0

Спасибо, но после того, как вы выполнили настройку подтверждения, удаление ссылки не работает. Я обновил свой вопрос, пожалуйста, проверьте – chinh

Смежные вопросы