关于phoenix:使用-Phoenix-LiveView-构建-Instagram-8
应用PETAL(Phoenix、Elixir、TailwindCSS、AlpineJS、LiveView)技术栈构建一个简化版的Instagram Web应用程序<!--more--> 在第 7 局部中,咱们在顶部题目导航菜单中增加了搜寻性能,在这部分中,咱们将钻研书签性能,并在以下内容向咱们的主页增加新帖子时告诉用户。您能够赶上Instagram 克隆 GitHub Repo。 当咱们尝试创立未抉择图像的新帖子时,让咱们处理错误,为此,咱们须要在外部的保留句柄函数中正确进行模式匹配lib/instagram_clone_web/live/post_live/new.ex: def handle_event("save", %{"post" => post_params}, socket) do post = PostUploader.put_image_url(socket, %Post{}) case Posts.create_post(post, post_params, socket.assigns.current_user) do {:ok, %{post: post}} -> # <- THIS LINE WAS UPDATED PostUploader.save(socket) {:noreply, socket |> put_flash(:info, "Post created successfully") |> push_redirect(to: Routes.user_profile_path(socket, :index, socket.assigns.current_user.username))} |> push_redirect(to: Routes.live_path(socket, InstagramCloneWeb.PostLive.Show, post.url_id))} {:error, :post, %Ecto.Changeset{} = changeset, %{}} -> # <- THIS LINE WAS UPDATED {:noreply, assign(socket, changeset: changeset)} end end因为咱们用来Ecto.Multi更新用户的帖子计数并创立帖子,所以在后果中咱们必须进行相应的模式匹配。 ...