Все вышеперечисленные методы все еще оставляют вас с данными формы, вложенными в «user» или любой символ, который вы передаете в качестве первого аргумента. Это раздражает.
Чтобы имитировать стиль / преимущества simple_form, но удалить зависимость объекта / символа и принудительное вложение данных, вы можете создать частичное.
HAML
примеры:
вид формы:
= form_tag("path/to/action", method: "POST") do
= render "path/to/partial/field", type: "string", required: true, item: "first_name"
field
частично:
- required_string = required ? "required" : ""
%div{class: "input #{type} #{required_string} #{item}"}
%label{class: "#{type} #{required_string}", for: "#{item}"}
- if required
%abbr{title: "required"}
*
= t("application.#{item}")
%input{name: "#{item}", |
placeholder: t("application.#{item}"), |
type: "#{type}", |
required: required, |
"aria-required" => "#{required}" }