Я пытаюсь создать небольшую систему учета. Здесь у меня есть некоторые продукты. Каждый месяц я хочу записать, сколько каждого продукта каждый пользователь купил.Несколько полей ввода для нескольких форм для нескольких пользователей
Допустим, у меня 3 пользователя и 4 продукта. Я хочу таблицу 3 на 4 со всеми именами пользователей слева и продуктами сверху. В каждом поле я хочу уметь записывать, сколько именно этого товара покупает пользователь.
Я пробовал следующее, однако поля не уникальны, поэтому отправляется только последний. Как мне продолжить?
= simple_form_for(:lines, url: lines_url) do |f|
- @users.each do |user|
tr
td= user.name
- @products.each do |product|
td
= f.fields_for user do |u|
= u.fields_for product do |p|
= p.fields_for Line.new do |l|
= l.text_field :quantity
EDIT:
Я обнаружил, что это будет работать, howver, это скорее хак:
= simple_form_for(:lines, url: lines_url) do |f|
- @users.each do |user|
tr
td= user.name
- @products.each do |product|
td
= text_field :lines, "#{user.id}][#{product.id}"
Обратите внимание на ][
в text_field
.
Действительно ли это правильное решение? Кажется немного странным, что мне нужно заботиться о самом индексе. –
Я знаю, это действительно отстой, но я не смог найти ничего лучшего. Это не похоже на то, что Rails имеет дело с очень хорошо из коробки, так как это не совсем стандартная запись CRUD. – RobHeaton