Chciałem dodać wiadomość potwierdzającą dla funkcji link_to z Ruby.Jak dodać potwierdzenie z linkiem do Ruby na szynach
= link_to 'Reset message', :action=>'reset' ,:confirm=>'Are you sure?'
Jakieś pomysły, dlaczego to nie działa?
Chciałem dodać wiadomość potwierdzającą dla funkcji link_to z Ruby.Jak dodać potwierdzenie z linkiem do Ruby na szynach
= link_to 'Reset message', :action=>'reset' ,:confirm=>'Are you sure?'
Jakieś pomysły, dlaczego to nie działa?
Po pierwsze, należy sprawdzić, czy układ ma jquery_ujs. Najlepsze praktyki to zrobić poprzez włączenie go w głównych application.js:
//= require jquery_ujs
Sprawdź, czy włączone application.js w układzie:
= javascript_include_tag :application
natomiast w trybie rozwoju , wyświetl swój źródłowy html i sprawdź, czy istnieje jquery_ujs.js.
uruchomić serwer i zweryfikować tag łącze ma danych potwierdzenia wartość, na przykład:
<a href="/articles/1" data-confirm="Are you sure?" data-method="delete">
Jeśli wszystkie te kroki są poprawne, wszystko powinno działać!
Uwaga: check to RailsCast http://railscasts.com/episodes/136-jquery-ajax-revised
Spróbuj tego:
= link_to 'Reset message', {:action=>'reset'}, :confirm=>'Are you sure?'
lub być bardziej jasne
= link_to('Reset message', {:action=>'reset'}, {:confirm=>'Are you sure?'})
Patrz http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
Przekonasz się, że istnieją 3 parametry, kiedy dajesz URL jako opcji, takich jak {:action => ..., :controller => ...}
link_to(body, url_options = {}, html_options = {})
W ruby, jeśli ostatnim parametrem wywołania funkcji jest hash, nie musisz go owijać w znaki {}
(innymi słowy, możesz pominąć to w przypadku, jeśli skrót jest ostatnim parametrem), więc kod podałeś zostanie zinterpretowane jako wywołanie funkcji z tylko 2 parametrów, 'Reset message'
ciąg i {:action=>'reset', :confirm=>'Are you sure?'}
hash i :confirm=>'Are you sure?'
będą interpretowane jako url_option
zamiast html_option
To jest nowy kod jak sugerujesz = link_to ("Zresetuj wiadomość", {: akcja => "zresetuj"}, {: confirm => "Czy jesteś pewien?"}) .... a to jest html Reset message Co to jest? "data-confirm" .... stil not opened confirm message ... Dzięki. – Tini
'data- *' to [niestandardowe atrybuty danych] (http://www.w3.org/html/wg/drafts/html/master/dom.html#embedding-custom-non-visible-data-w- -data - * - atrybuty) wprowadzone w HTML5, które służą jako obszary przechowywania prywatnych danych. 'dane-potwierdź' jest używane przez szyny, aby pop-up pojawił się po kliknięciu łącza. – veidt
@Tini ... czy w układzie lub na stronie zawarłeś '<% = javascript_include_tag: defaults%>'. Bez tego to nie zadziała. – rubyprince
może się mylę, ale nie określono kontrolera wraz z opcją :action
. Czy próbowałeś następujące? Zakładając, że masz messages
zasób skonfigurowany w trasie:
link_to 'Reset', message_path(@message), :confirm => 'Are you sure?'
EDIT: Powyżej jest przestarzała. Railsy 4.0 akceptują teraz zapytanie jako atrybut danych. Zobacz dokument here (podziękowania @Ricky).
link_to 'Reset', message_path(@message), :data => {:confirm => 'Are you sure?'}
Myślę, że ten styl jest przestarzały. Według dokumentacji railsów, jest to teraz atrybut danych, tj. '..., data: {confirm: 'Czy jesteś pewien?'}' – Ricky
@Ricky zdajesz sobie sprawę, że to pytanie i prawie wszystkie odpowiedzi na tej stronie zostały opublikowane w maju 21, 2013? Jest wrzesień 2014 już teraz. – veidt
Tak. Wybacz mi - nie jestem w pełni zanurzona w kulturze stackoverflow! Ktoś zapytał o to, został skierowany tutaj i był zdezorientowany, dlaczego ': confirm' nie działa. '' data-confirm'' działa, ale tak naprawdę nie jest to aktualna "szyna". Innymi słowy: jaki jest najlepszy sposób na odnotowanie tego? – Ricky
spojrzeć na swoje javascript_include_tag i powinno działać prawidłowo:
<%= link_to("Reset message", :method => :reset, :class => 'action', :confirm => 'Are you sure?') %>
Jak wskazano powyżej, ': confirm' jest teraz przestarzałe, więc musisz użyć albo' "data-confirm" => ... 'lub' data: {confirm: ...} '. – lucasarruda
Zegarek ten railscasts wideo dla lepszego zrozumienia.
http://railscasts.com/episodes/205-unobtrusive-javascript
szyny dokumentacja link_to pomocnika.
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
nie pamiętam, jak to miało miejsce w Rails 3, ale w Rails 4 można po prostu:
<%= link_to 'Reset message', { controller: 'your_controller', action: 'reset' }, data: {confirm: 'Are you sure?'} %>
Ta odpowiedź pomogła mi najbardziej; grupowanie parametrów osobno za pomocą '{' and '}' przed częścią 'data - confirm' było tym, co musiałem zrobić. –
Po pierwsze, musimy zrozumieć, co Pakiet Js reaguje na tego rodzaju ostrzeżenia w aplikacji rails. W związku z tym pakiet jquery_ujs jest odpowiedzialny za pokazywanie alertów w szynach. Musisz mieć jquery & jquery_ujs w swoim pliku application.js.
//= require jquery
//= require jquery_ujs
Teraz musimy potwierdzić, że plik application.js jest zawarty w wymaganym układzie, czy nie. Domyślnie plik układu pozostaje w pliku application.html.erb w folderze układu widoków.
<%= javascript_include_tag 'application' %>
Następny link powinien mieć danych potwierdzenia & data-metody atrybuty jak
<a href="/message/1/reset" data-method="delete" data-confirm="Are you sure?">
W erb, może to być napisane jak
= link_to 'Reset', message_path(@message), data: {method: 'delete', confirm: 'Are you sure?'}
To powinno działać, jeśli wszystko jest dostosowane w taki sam sposób.
Możliwy duplikat [Railsów - Jak umieścić okienko z potwierdzeniem na f.submit?] (Http://stackoverflow.com/questions/15771582/rails-how-to-put-a-confirmation-popup-on -af-submit) –
Nie wydaje się to dokładnym duplikatem nominowanego przykładu. Przykładowy pyta, jak dodać potwierdzenie do przesłania formularza; to pytanie pyta, jak dodać potwierdzenie do linku. –