Attention!!
This article is old entry!!
new index is here.
new index is here.
Goal
Ruby on Rails TutorialのサンプルアプリケーションをPhoenix-Frameworkで作成する。
Dev-Environment
OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.5
Node.js: v0.12.4
Phoenix Framework: v1.0.0
Safetybox: v0.1.2
Scrivener: v1.0.0
Bootstrap: v3.3.5
PostgreSQL: postgres (PostgreSQL) 9.4.4
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.5
Node.js: v0.12.4
Phoenix Framework: v1.0.0
Safetybox: v0.1.2
Scrivener: v1.0.0
Bootstrap: v3.3.5
PostgreSQL: postgres (PostgreSQL) 9.4.4
Wait a minute
Ruby on Rails Tutorial作者様、日本語訳を実施して下さった訳者様方に感謝を捧げます。
Ruby on Rails TutorialをPhoenix-Frameworkで実施する企画です。
内容は、Phoenix-Frameworkの初心者、入門者を対象としてものです。
基本、アプリケーション作成部分を主眼に置き実施していきます。
なので、Elixirの記法であったり、TDD / BDD部分は端折ります。
基本、アプリケーション作成部分を主眼に置き実施していきます。
なので、Elixirの記法であったり、TDD / BDD部分は端折ります。
いきなりですが、Rails Tutorialの1章の部分は飛ばします。
Gitは使いますが、herokuは使いません。
Gitは使いますが、herokuは使いません。
ロードマップは以下のリンク先です。
参考: Roadmap
参考: Roadmap
フレームワークのバージョンをv1.0.0へアップグレードしました。
参考: Upgrade version of Phoenix-Framework
参考: Upgrade version of Phoenix-Framework
デザインを修正しました。
参考: Modification of the design
参考: Modification of the design
Index
Rails Tutorial for Phoenix
|> 環境構築(一章相当部分)
|> Demo application(二章相当部分)
|> Static pages(三章相当部分)
|> Elixirの記法や機能(四章相当部分)
|> Filling in layout(五章相当部分)
|> Modeling users(六章相当部分)
|> Sign up(七章相当部分)
|> Sign-in and Sign-out(八章相当部分)
|> Updating users(九章相当部分)
|> User microposts(第十章相当部分)
|> Following users(第十一章相当部分)
|> Refactoring
|> 環境構築(一章相当部分)
|> Demo application(二章相当部分)
|> Static pages(三章相当部分)
|> Elixirの記法や機能(四章相当部分)
|> Filling in layout(五章相当部分)
|> Modeling users(六章相当部分)
|> Sign up(七章相当部分)
|> Sign-in and Sign-out(八章相当部分)
|> Updating users(九章相当部分)
|> User microposts(第十章相当部分)
|> Following users(第十一章相当部分)
|> Refactoring
環境構築(一章相当部分)
Phoenix-Frameworkの簡単な説明。
参考: Phoenix-Frameworkの簡単なまとめ
参考: Phoenix-Frameworkの簡単なまとめ
環境構築について。
以前、Elixir+Phoenix環境を構築した記事があるのでそちらを参照して下さい。
以前、Elixir+Phoenix環境を構築した記事があるのでそちらを参照して下さい。
Elixir
|> Elixirが熱い!?知らないけどとりあえずインストールする
|> ElixirにmixでPhoenixを混ぜ混ぜしてやる!!
|> Phoenixが欲しいって言うからNode.jsをインスコするよ!!
|> 今更ハイライト!?SublimeText3でElixirをハイライトする!!
|> Upgrade phoenix.new of mix archive
|> Elixirが熱い!?知らないけどとりあえずインストールする
|> ElixirにmixでPhoenixを混ぜ混ぜしてやる!!
|> Phoenixが欲しいって言うからNode.jsをインスコするよ!!
|> 今更ハイライト!?SublimeText3でElixirをハイライトする!!
|> Upgrade phoenix.new of mix archive
デモアプリを作ろう!!(二章相当部分)
特になし
基本的なところ(三章相当部分)
特になし
Elixirの記法や機能(四章相当部分)
@niku氏、参考にさせて頂きました。
レイアウトを作ろう〜(五章相当部分)
ユーザモデルの作成(六章相当部分)
ここでは、PhoenixのGuideにあるEcto Modelsの機能を紹介すると共に、
ユーザモデルにパスワード(カラム)の追加を行う。
ユーザモデルにパスワード(カラム)の追加を行う。
詳細・・・
モデルモジュールの自動生成、マイグレーション、
再マイグレーション(カラム追加)、Validation(検証)、virtualオプションを実施する。
モデルモジュールの自動生成、マイグレーション、
再マイグレーション(カラム追加)、Validation(検証)、virtualオプションを実施する。
各機能
|> シンプルなsafetybox(暗号化ライブラリ)を使う
|> PhoenixとEctoのコマンドまとめ
|> EctoModelsの機能を使う
|> Ecto.ChangesetのValidate関数を使う
|> Ectoを使って再マイグレーションする
|> Ectoのvirtualオプションを検証する
|> Ectoで1対多の関係性を検証する
|> シンプルなsafetybox(暗号化ライブラリ)を使う
|> PhoenixとEctoのコマンドまとめ
|> EctoModelsの機能を使う
|> Ecto.ChangesetのValidate関数を使う
|> Ectoを使って再マイグレーションする
|> Ectoのvirtualオプションを検証する
|> Ectoで1対多の関係性を検証する
ユーザ登録(七章相当部分)
この章ではユーザを登録し表示できるようにする。
詳細・・・(モデル以外の自動生成は利用しないで実施する)
ユーザを表示、gravatar画像、ユーザを登録、
ユーザ登録失敗、ユーザ登録成功、flashを利用を実施する。
ユーザを表示、gravatar画像、ユーザを登録、
ユーザ登録失敗、ユーザ登録成功、flashを利用を実施する。
サインイン/サインアウト(八章相当部分)
この章ではサインインとサインアウトの機能を実装する。
詳細・・・
サインイン、サインアウト、セッション、認証、ページ制限。
サインイン、サインアウト、セッション、認証、ページ制限。
ユーザーの更新・表示・削除(九章相当部分)
この章ではユーザの更新・表示・削除を実装する。
またそれに伴って、参照できるページを制限する認可とアクセス制御、ユーザの一覧に対するページネーションを実装します。
またそれに伴って、参照できるページを制限する認可とアクセス制御、ユーザの一覧に対するページネーションを実装します。
認可とアクセス制御、ページネーションは厄介ですね・・・意外とガッツリしてる。
すんなり終わらせてはくれなさそうです(笑)
すんなり終わらせてはくれなさそうです(笑)
各機能
|> PhoenixのPlugについて分かったこと
|> Phoenixでもページネーションがしたい!!(その1)
|> Phoenixでもページネーションがしたい!!(その2)
|> Updating users
|> Authorization
|> All Users (implements pagination)
|> Delete user
|> PhoenixのPlugについて分かったこと
|> Phoenixでもページネーションがしたい!!(その1)
|> Phoenixでもページネーションがしたい!!(その2)
|> Updating users
|> Authorization
|> All Users (implements pagination)
|> Delete user
ユーザーのマイクロポスト(第十章相当部分)
この章では、ユーザと紐づくマイクロポストの実装を行う。
Micropostモデルの作成から始まり、マイクロポストの表示、作成、削除を実装する。
Micropostモデルの作成から始まり、マイクロポストの表示、作成、削除を実装する。
ユーザーをフォローする(第十一章相当部分)
この章では、ユーザのフォロー機能を実装する。
各機能
|> many to many (Part 1)
|> many to many (Part 2)
|> Relationship Model
|> Web interface for the user who follows
|> Micropost of following users
|> many to many (Part 1)
|> many to many (Part 2)
|> Relationship Model
|> Web interface for the user who follows
|> Micropost of following users
Refactoring
第十一章終了時点では、ソースコードが汚いので修正をします。
後に、記事へ反映後、削除する予定です。
後に、記事へ反映後、削除する予定です。
Speaking to oneself
何故、Ruby on Rails Tutorialをやるのか?
理由は三つ・・・
- Web開発における知識が習得できる
- Phoenix-Frameworkのチュートリアルがない (公式のGuideくらい?)
- ElixirはRubyライク、Phoenix-FrameworkはRailsライクなので変換が比較的容易
上記の三点に合致し、Rails Tutorialはちょうど良い教材になるため。