私のアプリでは、ショーとエピソードの間に1対多の関係があります。ショーは多くのエピソードを持つことができます。エピソードを作成するときに、私はこれを行うことによって、ショーに関連付けを構築することができる午前:Ectoの1対多の関連付けを更新するには
def create(conn, %{"episode" => episode_params}) do
show = Repo.get!(Show, episode_params["show_id"])
changeset =
show
|> build_assoc(:episodes)
|> Episode.changeset(episode_params)
case Repo.insert(changeset) do
{:ok, _post} ->
conn
|> put_flash(:info, "Episode created successfully.")
|> redirect(to: show_path(conn, :show, show))
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
どのように私は最高のショーにエピソードの関連付けを更新することができますか?これは今私が持っているものです。あなたには、いくつかのアクションからshow_id
への変更を許可しないようないくつかの要件がない限り
def update(conn, %{"id" => id, "episode" => episode_params}) do
episode = Repo.get!(Episode, id)
changeset = Episode.changeset(episode, episode_params)
case Repo.update(changeset) do
{:ok, episode} ->
conn
|> put_flash(:info, "Episode updated successfully.")
|> redirect(to: episode_path(conn, :show, episode))
{:error, changeset} ->
render(conn, "edit.html", episode: episode, changeset: changeset)
end
end
:ような何か。それをしない理由がありますか? – Dogbert
@Dogbertあなたは正しいです!まだ学んでいる。どうもありがとうございました。 –