wake-up-neo.com

Wie verwende ich hidden_field in einem form_for in Ruby on Rails?

Ich habe this gelesen, aber ich bin neu bei RoR, daher habe ich ein wenig Probleme, es zu verstehen. Ich benutze ein Formular, um einen neuen Anforderungsdatensatz zu erstellen, und alle Variablen, die ich senden muss, sind bereits vorhanden. Hier sind die Daten, die ich senden muss (dies befindet sich in einer do-Schleife):

:user_id => w[:requesteeID]
:requesteeName => current_user.name
:requesteeEmail => current_user.email
:info => e

Hier ist mein Formular, das bisher funktioniert, aber nur NULL-Werte für alles sendet:

<% form_for(:request, :url => requests_path) do |f| %>
    <div class="actions">
        <%= f.submit e %>
    </div>
<% end %>

Wie sende ich mit hidden_fields meine bereits vorhandenen Daten? Danke fürs Lesen.

68
ben

Ref hidden_field oder hidden_field_tag

<% form_for(:request, :url => requests_path) do |f| %>
    <div class="actions">
        <%= f.hidden_field :some_column %>
        <%= hidden_field_tag 'selected', 'none'  %>
        <%= f.submit e %>
    </div>
<% end %>

dann in der Steuerung

 params[:selected]="none"
 params[:request][:some_column] = request.some_column

Beachten Sie, wenn Sie verwendet haben

   <%= f.hidden_field :some_column %>

es ändert sich in html

<input type="hidden" id="request_some_column" name="request[some_column]" value="#{@request.some_column}" />

und wenn du benutzt hast

<%= hidden_field_tag 'selected', 'none'  %>

es ändert sich in html

   <input id="selected" name="selected" type="hidden" value="none"/>
89
Salil

Sie können einen benutzerdefinierten Wert wie folgt als versteckte Eingabe für Ihr Modell senden:

<%= f.hidden_field :version, value: 12 %>
58
Bruno Paulino