アイコンは出来たので引き続きグループの作成機能。
本家だととりあえず一番簡単なパターンでは、グループ名だけ入力すれば登録できる。
とりあえずそこまでを作った。
アイコンも選択できるようにしている。
実装は非常にシンプルで、まずモデルに所属メンバー用のアソシエーションを設定。マイグレーションなどもマニュアル通り。
many_to_many :users, Cybozulive.User, join_through: "groups_users"
登録処理もシンプル。
def create(conn, %{"group" => group_params}) do
user = Auth.get_user(conn)
changeset = Ecto.build_assoc(user, :groups)
|> Group.changeset(group_params)
|> Ecto.Changeset.put_assoc(:users, [user])
case Repo.insert(changeset) do
{:ok, group} ->
conn
|> put_flash(:info, "グループを作成しました。")
|> redirect(to: group_path(conn, :show, group))
{:error, changeset} ->
icons = IconRepo.get_select_icons(user.id)
render(conn, "new.html", changeset: changeset, icons: icons, show_group: false)
end
end
とりあえずここまでを公開した。
Copying live
GCEのf1-micro、1台にDBまで全部詰め込み。
Let's EncryptでSSL対応。
体裁とか未完成の部分はぐちゃぐちゃ。
第1回 | サイボウズLiveを作る-第1回-アイコン登録まで |
第2回 | サイボウズLiveを作る-第2回-グループ登録まで |
第3回 | サイボウズLiveを作る-第3回-トピック登録まで |
第4回 | サイボウズLiveを作る-第4回-Todoをざっと |
第5回 | サイボウズLiveを作る-第5回-グループへ参加 |
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント