Мне нужно создать форму, где пользователь может редактировать несколько записей бумаги одновременно. Прямо сейчас я использую встроенную схему, поэтому Ecto может выполнить кастинг для меня:
defmodule EmbSchema do
embedded_schema do
has_many :papers, Paper
end
def changeset(emb_schema, attrs) do
emb_schema
|> cast(attrs, [])
|> cast_assoc(:papers, with: &Paper.classify_changeset/2)
end
и HTML-помощники по умолчанию для отображения формы
<%= inputs_for f, :papers, fn p -> %>
Единственная проблема в том, что я получаю предупреждение
invalid association `papers` in schema EmbSchema: associated schema Paper does not have field `emb_schema_id`
, что, конечно, правильно, но не имеет значения для моего варианта использования.
Так как это похоже на хак, есть ли другой способ смоделировать это?