Mam form_for napisany w następujący sposób:
<div class="field">
<%= location.label :city %>
<%= location.text_field :city, :disabled=>true%>
</div>
<div class="field">
<%= location.label :country %>
<%= location.text_field :country, :disabled=>true%>
</div>
Jak widać, 2 pola tekstowe są wyłączone, ponieważ są automatycznie wypełniane przez funkcję jquery i nie chcę, aby użytkownik je obsługiwał. Problem w tym, że w ten sposób widok nie przekazuje tych parametrów do kontrolera, ponieważ są wyłączone !!! Czy istnieje inny sposób przekazania nieedytowalnego pola tekstowego do kontrolera, uważając, że nie chcę używać ukrytego pola, ponieważ chcę pokazać wyniki użytkownikowi w polu tekstowym
TNX
Odpowiedzi:
Tylko do odczytu!
<%= location.text_field :country,:readonly => true%>
źródło
disabled
iread-only
wyjaśnia, że wyłączone dane wejściowe nie powinny być przesyłane z danymi formularza.:disabled => true
nie zgłosiłbym swojego pola.Create
działaniu?readonly="readonly"
atrybutinput
tagu i edytować pole tekstowe według własnego uznania. Jeśli naprawdę potrzebujesz tego dla bezpieczeństwa, usuń całkowicie pole wejściowe lub sprawdź poprawność danych wejściowych formularza w modelu. To i tak była bardzo przydatna odpowiedź.Sztuczka polega na użyciu „obiektu” w połączeniu z etykietą do wszystkiego, czego nie chcesz zmieniać. Oto jak powinieneś to zakodować:
<%= location.label(:country, f.object.country) %>
źródło