Я создаю интерфейс администратора, где администратор (компании) может добавлять пользовательские поля своим сотрудникам.Rails вложенная форма с неизвестными столбцами
Пример:
Модели:
- Сотрудник: Базовая информация, как имя, контактная информация и т.д. (has_many employee_field_values)
- EmployeeFields: Они являются динамическими в admin может добавить (у каждой компании разные потребности, это может быть что угодно), скажем
favorite_food
- EmployeeFieldValues : Фактические значения, основанные на вышеуказанных областях, скажем,
pizza
(belongs_to как выше моделей)
Что такое умный способ добавления EmployeeFieldValues
полей при редактировании сотрудника?
Я пытаюсь что-то простое, как это, но не уверен, что если мне нравится
# Controller
@custom_fields = EmployeeFields.all
# View
<%= form_for(@employee) do |f| %>
<%= f.text_field :first_name %>
<% @custom_fields.each do |custom_field| %>
<%= custom_field.name %>
<%= text_field_tag "employee_field_values[#{custom_field.name}]" %>
<% end %>
<%= f.submit :save %>
<% end %>
И потом при обновлении, params[:employee_field_values]
дает это:
<ActionController::Parameters {"favorite_food"=>"pizza"}>
Таким образом, не уверен, если это хорошее направление, также я не уверен, как обращаться с будущими изменениями в custom_fields сотрудника, если они меняются.