Ich habe gelesen , dieses , aber ich bin neu in RoR so dass ich ein wenig Mühe, es zu verstehen. Ich verwende 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 ist 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 verwende ich hidden_fields, um die Daten zu senden, die ich bereits habe? Danke fürs Lesen.
Antworten:
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, wann Sie verwendet haben
<%= f.hidden_field :some_column %>
es ändert sich zu 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 zu HTML
<input id="selected" name="selected" type="hidden" value="none"/>
quelle
Sie können einen benutzerdefinierten Wert als versteckte Eingabe für Ihr Modell wie folgt senden:
<%= f.hidden_field :your_model_field_name, value: 12 %>
Wo
value: 12
ist nur eine Demo, aber Sie können jeden Wert übergeben, den Sie benötigen.quelle