Ответ 1
simple_form - обертка вокруг form_for
, а не form_tag
. Вы можете использовать simple_form_for
вместо form_for
, но form_tag
просто создает теги <form>
с указанным контентом, это не относится к простой форме.
У меня есть форма, использующая form_tag
и не уверен, как ее использовать с символом simple_form. Вот как выглядит моя форма:
<%= form_tag create_multiple_prices_path, :method => :post do %>
<% @prices.each_with_index do |price, index| %>
<%= fields_for "prices[#{index}]", price do |up| %>
<%= render "fields", :f => up %>
<% end %>
<% end %>
<%= submit_tag "Done" %>
<% end %>
Можно ли это сделать? Как изменить form_tag
, чтобы использовать simple_form правильно? Как насчет использования с помощью fields_for
? Новичок может использовать некоторую помощь.
Спасибо.
simple_form - обертка вокруг form_for
, а не form_tag
. Вы можете использовать simple_form_for
вместо form_for
, но form_tag
просто создает теги <form>
с указанным контентом, это не относится к простой форме.
Вы можете использовать simple_form, даже если вы не создаете форму, привязанную к модели.
Возьмите эту форму в качестве примера:
<%= simple_form_for :signin, { url: signin_path } do |f| %>
<%= f.input :email %>
<%= f.input :password %>
<%= f.button :submit, "Sign In" %>
<% end %>
Это создаст параметры вроде следующего:
{
...
"signin" => {
"email"=>"[email protected]",
"password"=>"[FILTERED]"},
"commit"=>"Sign In"
}
}
В контроллере вы можете ссылаться на поля формы, используя:
params[:signin][:email] ...
Вы можете избежать использования
params[:signin][:email]
используя
<%= f.input :email, input_html: { name: "email" } %>
так
params[:email]
like @barelyknown said Вы можете использовать simple_form даже без модели
Вы также можете использовать field_for
или simple_field_for
<%= simple_form_for :transaction_limits, {url: create_multiple_prices_path, method: :post} do |f| %>
<% @prices.each_with_index do |price, index| %>
<%= f.fields_for "prices[#{index}]", price do |up| %>
<%= render "fields", :f => up %>
<% end %>
<% end %>
<%= f.submit "button" %>
<% end %>