мне нужно создать User
со многими roles
, поэтому я выполните следующие действия:сообщение форма с belongs_to ассоциации эликсира
Я создал две модели, схемы являются:
schema "roles" do
field :name, :string
belongs_to :user, Module.User
timestamps()
end
schema "users" do
field :name, :string
field :cnpj, :string
has_many :roles, Module.Role
timestamps()
end
Я пытаюсь создать формы для создания пользователя с любыми ролями, но несовместимого.
Моего create
контроллер действия выглядит следующим образом:
def create(conn, %{"user" => user_params}) do
changeset = User.changeset(%User{},user_params)
case Repo.insert(changeset) do
...
В моей форме, чтобы создать пользователь, я добавил поле для multiple_select
ролей, но его генерации недопустимых ревизий
<%= inputs_for f, :roles, fn i -> %>
<div class="form-group">
<%= label i, :name, gettext("Roles"), class: "control-label" %>
<%= multiple_select(i, :name, ["Admin": "1", "User": "2", "Power": "3"]) %>
</div>
<% end %>
Сформированного ревизии с ошибками:
#Ecto.Changeset<action: :insert, changes: %{cnpj: "01578216908926", roles: [#Ecto.Changeset<action: :insert, changes: %{}, errors: [name: {"is invalid", [type: :string]}], data: #Module.Role<>, valid?: false>], name: "xxx"}, errors: [], data: #Module.User<>, valid?: false>
Есть ли какой-либо w создать его, или я иду не так?
Вы можете разместить источник 'User.changeset/2' и 'Role.changeset/2'? – Dogbert