내 앱에서는 프로그램과 에피소드간에 일대일 관계가 많습니다. 프로그램에 에피소드가 여러 개있을 수 있습니다. 에피소드를 만들 때 나는이 작업을 수행하여 쇼에 연결을 구축 할 수 있어요 :Ecto에서 일대 다 관계를 업데이트하는 방법
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
@ 도그 버트 네가 맞아! 아직도 배우기. 고맙습니다. –