2013-03-28 13 views
13

Po prostu próbuję utworzyć proste menu wyboru, które przeniesie Cię do określonego adresu URL. Do tej pory mam coś takiego:Formularz Railsów za pomocą żądania GET: Jak usunąć parametry param i przycisków?

# haml 
= form_tag new_something_path, method: :get do 
    = select_tag :type, options_for_select(my_array) 
    = submit_tag 'New Something' 

Jednak, kiedy przesłać formularz dostaję parametr UTF8 a także parametr „commit” z tekstem przycisku.

Jak mogę usunąć parametry UTF8 i zatwierdzić?

+0

Zostało tutaj odpowiedział: http://stackoverflow.com/a/4488837/523568 Krótka odpowiedź: Nie powinieneś usuwać parametru UTF-8. Ponadto nie można pozbyć się parametru zatwierdzenia, biorąc pod uwagę tę część znacznika formularza enkapsulującego. Możesz zmienić nazwę submit_tag za pomocą 'submit_tag name:" cokolwiek "," New Something "' –

+0

Tak, rozumiem cel atrybutu UTF-8, ale w tym przypadku nie potrzebuję go, ponieważ wiem, że wartości formularza będą nigdy nie zawierają żadnych znaków specjalnych. Więc nadal chciałbym wiedzieć, jak go usunąć. – Andrew

Odpowiedz

35

Zdejmowanie commit param jest stosunkowo prosta, trzeba określić, że wejście nie ma nazwy:

submit_tag 'New Something', name: nil 

odniesieniu do UTF-8 param ... służy ważnemu celowi. Kiedy zrozumiesz the purpose of the Rails UTF-8 param, iz jakiegoś powodu trzeba jeszcze, aby go usunąć, rozwiązanie jest prostsze niż myślisz ... po prostu nie używać form_tag pomocnika:

# haml 
%form{action: new_something_path, method: 'get'} 
    = select_tag :type, options_for_select(my_array) 
    = submit_tag 'New Something', name: nil 
+9

W szynach 4.1 wprowadzono nową opcję dla form_tag - enforce_utf8. Możesz ustawić na false. – Dmitry

+0

wspaniała answe przy okazji –

Powiązane problemy