Я пытаюсь заполнить поле :params (из модели/схемы), которое является картой. У меня есть рабочая форма form_for, и я хотел бы заполнить эту карту :params с помощью флажков, чтобы при отправке формы контроллер получил что-то вроде %{... params => %{"param1" => "true", "param2" => "false"}} ...
Я просмотрел inputs_for, но, похоже, это не то, что мне нужно, поскольку оно основано на вложенных схемах и моделях, и это означало бы, что мне нужно создать новую схему для каждого нового набора параметров (мне нужно что-то общее, что не требует внесения изменений в исходный код при изменении параметров).
<%= form_for @changeset, audit_audit_path(@conn, :new_tool_request, @audit.id),
fn f -> %>
<%= render LayoutView, "changeset_error.html", conn: @conn, changeset: @changeset, f: f %>
<div class="form-group"><label>Tool</label>
<%= select f, :toolname, tools %>
</div>
<div class="form-group"><label>Parameter 1</label>
<%= checkbox f, :param1 %>
</div>
<div class="form-group"><label>Parameter 2</label>
<%= checkbox f, :param2 %>
</div>
<div class="form-group"><label>Date of Execution</label>
<%= datetime_select f, :date %>
</div>
<div class="form-group">
<%= hidden_input f, :audit_id, value: @audit.id %>
</div>
<%= submit "Request", class: "btn btn-primary" %>
<% end %>
Так что вместо этих флажков для param1
и param2
мне нужно перенести все эти параметры на карту. Если отображается другая форма с другими флажками для параметров, она должна заполняться без какой-либо связи со схемой.
Спасибо!
<%= checkbox f, :param1, name: "params[param1]" %>
и<%= checkbox f, :param2, name: "params[param2]" %>
, но я считаю, что с form_for это должно быть сделано автоматически. - person NoDisplayName   schedule 20.01.2016def action_to_use(conn, "form" => form, "params" => params
, и вы получите вторую форму, которую вы создали с пространством имен. - person Sasha Fonseca   schedule 20.01.2016