Goal
ユーザを削除する機能を実装する。
Dev-Environment
OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Phoenix Framework: v0.13.1
PostgreSQL: postgres (PostgreSQL) 9.4.4
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Phoenix Framework: v0.13.1
PostgreSQL: postgres (PostgreSQL) 9.4.4
Wait a minute
ユーザを削除できるようにします。
DBからデータそのものを削除します。
DBからデータそのものを削除します。
論理的なフラグを立てる削除ではない。
なので、データを元には戻せないので注意して下さい。
なので、データを元には戻せないので注意して下さい。
更新や一覧よりは簡単なので、サクッと終わらせます。
Index
DeleteUser
|> Delete the user
|> Add user delete link
|> Extra
|> Delete the user
|> Add user delete link
|> Extra
Delete the user
ユーザを削除する機能を実装します。
ファイル: web/controllers/user_controller.ex
Deleteアクション関数を追加。
Deleteアクション関数を追加。
def delete(conn, %{"id" => id}) do
user = Repo.get(User, id)
Repo.delete(user)
conn
|> put_flash(:info, "User deleted successfully.")
|> redirect(to: static_pages_path(conn, :home))
end
サインインしていることと、
自分自身しか削除できないようにします。
自分自身しか削除できないようにします。
plug :signed_in_user? when action in [:index, :show, :edit, :update, :delete]
plug :correct_user? when action in [:show, :edit, :update, :delete]
機能は実装できましたが、
リンクがないのでURLを直接叩くしか方法がありません。
リンクがないのでURLを直接叩くしか方法がありません。
Add user delete link
ユーザを削除するリンクを追加します。
ユーザのプロファイルページへリンクを追加します。
ユーザのプロファイルページへリンクを追加します。
ファイル: web/templates/user/show.html.eex
削除リンクを追加。
削除リンクを追加。
<h2>
<div class="gravatar" style="float: left; margin-right: 10px;">
<img src="<%= get_gravatar_url(@user) %>" class="gravatar">
</div>
<p><%= @user.name %></p>
<%= link "Edit", to: user_path(@conn, :edit, @user), class: "btn btn-default btn-xs" %>
<%= link "Delete", to: user_path(@conn, :delete, @user), method: :delete, class: "btn btn-danger btn-xs" %>
</h2>
Extra
特になし~
Speaking to oneself
前回、前々回と結構苦労しましたが、
今回は本当に少量の追加で終わりです。
拍子抜けしました?難しいよりは良いかと思います(笑)
今回は本当に少量の追加で終わりです。
拍子抜けしました?難しいよりは良いかと思います(笑)
よし、これにて第九章の機能は実装できた。
後は、まとめ記事を作成して第九章は終了です。
後は、まとめ記事を作成して第九章は終了です。
残すところ後2つです。
長かったですね~。
しかし、感慨に耽るにはまだ早いです。
長かったですね~。
しかし、感慨に耽るにはまだ早いです。
後2つがサクッと終わるかは分かりませんが、
8月上旬にはv0.0.1のリリースにはなると思います。
その後、修正していきv1.0に持っていければいいですね。
8月上旬にはv0.0.1のリリースにはなると思います。
その後、修正していきv1.0に持っていければいいですね。
一応、Rails Tutorial for Phoenixの記事ですが、
冬コミに当選すれば同人誌にして発行する予定があります。
本当にできるかは分かりませんが・・・できれば形にしたいですね。
冬コミに当選すれば同人誌にして発行する予定があります。
本当にできるかは分かりませんが・・・できれば形にしたいですね。
上記のサイトですが、Githubにてソースコードを公開しているので、
Phoenixの学習をするのに非常にためになります。
(応用的な部分が多いですね)
Phoenixの学習をするのに非常にためになります。
(応用的な部分が多いですね)
個人的には、ElixirStream→elixirstatusで学習すると丁度良い感じです。
ElixirStreamは、基礎的な学習に役立ちます。
elixirstatusは、応用的な学習に役立ちます。
(elixirstatusは、基礎ができないとソースコード読むの難しいかもしれないです)
ElixirStreamは、基礎的な学習に役立ちます。
elixirstatusは、応用的な学習に役立ちます。
(elixirstatusは、基礎ができないとソースコード読むの難しいかもしれないです)
まぁ参考までに~