2012-08-16 10 views
6
<%= link_to 'New Post', new_post_path %> 

To produkuje link do new_post_path. Poprzednio używałem <input type="submit" class="new" name="Addlist" value="Add New" />, który przypominał przycisk. Jak mogę sprawić, aby link wyglądał jak przycisk w erb?Jak sprawić, aby przycisk działał jako łącze w erb?

Odpowiedz

5

Wystarczy rzucić kolejną opcję, ponieważ miałem scenariusz, w którym opcja button_to nie działała. Wygląda to trochę podobnie.

<%= link_to '<button type="button">New Post</button>'.html_safe, new_post_path %> 

Co ja w zasadzie chciał znajduje się przycisk, który nie zamieni się przedstawić, ponieważ mam kilka przycisków na stronie, które nie są związane z formularza, a ja naprawdę chcę to po prostu pójść do inna strona.

+0

Może to być niebezpieczne w niektórych wersjach szyn. Jest to bardziej odpowiednie stylizowanie łącza do wyglądu przycisku. Zobacz [Rails XSS] (https://github.com/rails/rails_xss) –

+1

Po sprawdzeniu poprawności tego znacznika za pomocą http://validator.w3.org/ pojawi się błąd: ** Przycisk elementu nie może być wyświetlany jako potomek elementu. ** nie może umieścić przycisku wewnątrz linku ...! Spróbuj sam: skopiuj tekst z: https://gist.github.com/nelsonic/7986797 i wklej go do walidatora. – nelsonic

8

Spójrz na button_to. Podsumowując to będzie simmilar do tego:

<%= button_to "New Post", { :action => "new" }, :method => :get %> 

Chociaż należy pamiętać, metoda ta przyjmuje :method i :confirm modyfikatory opisane w dokumentacji link_to. Jeśli nie podano modyfikatora :method, domyślnie wykona operację POST. Możesz również wyłączyć przycisk, przekazując :disabled => true w html_options. Jeśli używasz tras RESTful, możesz przekazać :method, aby zmienić czasownik HTTP używany do przesłania formularza.

5

@ odpowiedź Ryana jest dobra, ale niestety nie html walidacji http://validator.w3.org/

błąd: Przycisk element nie musi pojawić się jako potomek elementu.

Dlaczego nie po prostu zastosować (CSS) klasa do linku i dokonać pojawić jako przycisk.

erb:

<%= link_to "Button Text", new_post_path, class: 'button' %>

produkuje (ważny & semantyczny) HTML:

<a class="button" href="/post/new">Button Text</a>

które można następnie styl do wyglądać jak przycisk.

Przykład: http://jsfiddle.net/nelsonic/FQK9M/7/

Powiązane problemy