Hello, I’m trying to make a simple multiple selection in an appointment form, so users don’t have to search the ID for a medic, normally I searched a lot on how to implement a multiple_select
and carefully followed everything on many forums, but no one gets this error:
no function clause matching in Phoenix.HTML.Tag.dasherize/1
My controller is as follows:
defmodule Medica.AppointmentuController do
use Medica.Web, :controller
alias Medica.Appointment
alias Medica.Medico
def index(conn, _params) do
appointments = Repo.all(Appointment)
render(conn, "index.html", appointments: appointments)
end
def new(conn, _params) do
changeset = Appointment.changeset(%Appointment{})
medico = Repo.all from u in Medico, select: {u.id, u.nombre}
render(conn, "new.html", medico: medico, changeset: changeset)
end
...
end
New.html.eex
<h2 align="center">Modo Paciente</h2>
<h2>Reservar Nueva Hora</h2>
<%= render "forma.html", changeset: @changeset,
action: appointmentu_path(@conn, :create),
medico: @medico %>
and form.html.eex:
<%= form_for @changeset, @action,@medico, fn f -> %>
<%= if @changeset.action do %>
<div class="alert alert-danger">
<p>Ingrese los datos correctamente o puede que la cita ya esté tomada.</p>
</div>
<% end %>
<div class="form-group">
<%= label f, :rut_paciente, class: "control-label" %>
<%= text_input f, :rut_paciente, class: "form-control" %>
<%= error_tag f, :rut_paciente %>
</div>
<div class="form-group">
<%= label f, :fecha, class: "control-label" %>
<%= date_input f, :fecha, class: "form-control" %>
<%= error_tag f, :fecha %>
</div>
<div class="form-group">
<%= label f, :id_medico, class: "control-label" %>
<%= multiple_select f, :medico, Enum.map(@medico, &{&1.id, &1.nombre}) %>
<%= error_tag f, :id_medico %>
</div>
<div class="form-group">
<%= label f, :bloque, class: "control-label" %>
<%= number_input f, :bloque, min: 1, class: "form-control" %>
<%= error_tag f, :bloque %>
</div>
<div class="form-group">
<%= label f, :descripcion, class: "control-label" %>
<%= text_input f, :descripcion, class: "form-control" %>
<%= error_tag f, :descripcion %>
</div>
<div class="form-group" align="center">
<%= submit "✔", class: "btn btn-primary" %>
<a class="btn btn-danger" href="/" role="button">✖</a>
</div>
<% end %>
My models:
schema "appointments" do
field :rut_paciente, :string
field :fecha, :date
field :id_medico, :integer
field :bloque, :integer
field :descripcion, :string
timestamps()
end
schema "medico" do
field :nombre, :string
field :apellido, :string
field :especialidad, :string
end
Screen for the error: