Elixir 重构控制器中的案例结构
我在控制器中有以下代码。显然,它需要重构。但我不知道如何解决它。如何重构它,使所有重复的代码部分消失Elixir 重构控制器中的案例结构,elixir,phoenix-framework,Elixir,Phoenix Framework,我在控制器中有以下代码。显然,它需要重构。但我不知道如何解决它。如何重构它,使所有重复的代码部分消失 case Repo.insert(changeset) do {:ok, social_media_account} -> case social_media_account.provider do "Twitter" -> conn |> put_flash(:info, gettext("A")) |&
case Repo.insert(changeset) do
{:ok, social_media_account} ->
case social_media_account.provider do
"Twitter" ->
conn
|> put_flash(:info, gettext("A"))
|> redirect(to: user_social_media_account_path(conn, :index, conn.assigns[:user]))
"GitHub" ->
conn
|> put_flash(:info, gettext("B"))
|> redirect(to: user_social_media_account_path(conn, :index, conn.assigns[:user]))
_ ->
conn
|> put_flash(:info, gettext("C"))
|> redirect(to: user_social_media_account_path(conn, :index, conn.assigns[:user]))
end
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
您可以从
案例
返回一个值,并使用该值:
case Repo.insert(changeset) do
{:ok, social_media_account} ->
info = case social_media_account.provider do
"Twitter" ->
gettext("A")
"GitHub" ->
gettext("B")
_ ->
gettext("C")
end
conn
|> put_flash(:info, info)
|> redirect(to: user_social_media_account_path(conn, :index, conn.assigns[:user]))
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
您可以从
案例
返回一个值,并使用该值:
case Repo.insert(changeset) do
{:ok, social_media_account} ->
info = case social_media_account.provider do
"Twitter" ->
gettext("A")
"GitHub" ->
gettext("B")
_ ->
gettext("C")
end
conn
|> put_flash(:info, info)
|> redirect(to: user_social_media_account_path(conn, :index, conn.assigns[:user]))
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end