Я читал это , но я новичок в RoR, поэтому у меня небольшие проблемы с его пониманием. Я использую форму для создания новой записи запроса, и все переменные, которые мне нужно отправить, уже существуют. Вот данные, которые мне нужно отправить (это в цикле do):
:user_id => w[:requesteeID]
:requesteeName => current_user.name
:requesteeEmail => current_user.email
:info => e
Вот моя форма, которая пока работает, но отправляет только значения NULL для всего:
<% form_for(:request, :url => requests_path) do |f| %>
<div class="actions">
<%= f.submit e %>
</div>
<% end %>
Как использовать hidden_fields для отправки данных, которые у меня уже есть? Спасибо за прочтение.
Ответы:
Ссылка hidden_field или 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 %>
затем в контроллере
params[:selected]="none" params[:request][:some_column] = request.some_column
Обратите внимание, когда вы использовали
<%= f.hidden_field :some_column %>
он изменится на html
<input type="hidden" id="request_some_column" name="request[some_column]" value="#{@request.some_column}" />
и когда вы использовали
<%= hidden_field_tag 'selected', 'none' %>
он изменится на html
<input id="selected" name="selected" type="hidden" value="none"/>
источник
Вы можете отправить собственное значение в качестве скрытого ввода для вашей модели следующим образом:
<%= f.hidden_field :your_model_field_name, value: 12 %>
Где
value: 12
просто демонстрация, но вы можете передать любое нужное вам значение.источник