0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ジャンル別に投稿・チャットできるようなアプリ作ってみた〜ホーム画面〜

Posted at

:sunny: ホーム画面

:star: ホーム画面で確認できるもの

スクリーンショット 2020-08-02 1.42.11.png

  • ユーザー名

    ユーザー登録した際の名前が表示される

    名前を変更したい場合は、登録変更画面で可能(下記記述)
  • ユーザーアイコン

    登録時のログインでは、アイコンはない
    スクリーンショット 2020-08-02 1.41.35.png
    登録変更画面にて自身のフォルダから選択することができる(別記事にて詳細予定)
  • ユーザーのお気に入りジャンル(お選びのジャンルだよ(´∀`))

    お気に入りにしたジャンル名のみを表示する

    (ジャンルをお気に入りする方法は別記事にて詳細予定)
    なお、このジャンル名はリンクになっており、クリックすればジャンルページに飛ぶ
  • ユーザーの所属チャットグループ(所属チャットグループだよ(*^ω^*))

    所属しているチャットグループのグループ名を表示

    (チャットグループに関しては別記事にて詳細予定)
    なお、このグループ名はリンクになっており、クリックすればグループページに飛ぶ

:star: ホーム画面でリンクされているもの

  • お気に入りジャンル
    お選びのジャンル枠内のジャンル名からそのジャンルページに飛ぶ

  • ジャンル作成・検索画面
    「ジャンルを探す」ボタンから飛べる

  • 所属チャットグループ
    所属チャットグループ枠内のグループ名からそのグループページに飛ぶ

  • ユーザー登録変更画面
    リストアイコンをhoverすることで出現するリンク「登録変更」から飛ぶ

  • グループ希望画面
    リストアイコンをhoverすることで出現するリンク「グループ希望」から飛ぶ

  • ログアウト
    リストアイコンをhoverすることで出現するリンク「ログアウト」を押すことで、ログアウトする

:star: コード記述

app/views/homes/index.html.haml
.page-header
  .page-header__user
    .page-header__user__image
      -if @user.icon.file.nil? # もし、userテーブルの指定レコードのiconカラムがnil(空)だったらcameraアイコンを表示
        =icon "fas","camera fa-3x", class: "page-header__user__image__icon"
      -else # そうでない場合は、iconカラムの画像を表示
        = image_tag @user.icon.url,:size =>'125x125'
    .page-header__user__name
      .page-header__user__name__box
        お名前:
        = current_user.name
  .page-header__list
    .page-header__list__icon
      =icon("fas", "list-ul fa-5x", id: "list__icon")
      .page-header__list__icon__box
        %ul.page-header__list__icon__box__list
          %li.page-header__list__icon__box__list__li
            =link_to "登録変更",edit_user_registration_path,id:"icon__li"
          %li.page-header__list__icon__box__list__li
            =link_to "グループ希望",homes_path,id:"icon__li"
          %li.page-header__list__icon__box__list__li
            =link_to "ログアウト",destroy_user_session_path, method: "delete",id:"icon__li"

      
.page-main
  .page-main__genru
    %h1.page-main__genru__title
      お選びのジャンルだよ( ´∀`)
    .page-main__genru__list
      .page-main__genru__list__top
        - current_user.genrus.each do |genru|  # ログインユーザーと紐づいているジャンル(複数)を一つ一つ取り出す
          .page-main__genru__list__top__name
            =link_to genru_path(genru.id),id: "genru-name" do # ジャンル名をリンクにする
              = genru.name
      .page-main__genru__list__bottom
        = link_to "ジャンルを探す",new_genru_path,id: "genru-bottom"
    
  .page-main__chat
    %h1.page-main__chat__title
      所属チャットグループだよ(*^ω^*)
    .page-main__chat__list
      .page-main__chat__list__top
        - if @groups # もしユーザーに所蔵しているグループ(@groups)があれば↓を表示
          - @groups.each do |g|
            .page-main__chat__list__top__name
              = link_to genru_group_path(genru_id: "{Group.find(g.group_id).genru_id}",id: g.group_id),id: "group-name" do
                =Group.find(g.group_id).name
    
.page-footer
app/controllers/homes_controller.rb
class HomesController < ApplicationController
  def index
    @user = User.find(current_user.id)
    @groups = @user.users_groups
    # @groupsは@userに紐づいている中間テーブル(のレコード)を取り出している
    # users_groupsはusersテーブルとgroupsテーブルの中間テーブル
  end
  
end

:sweat_smile:私の注意点
link_toを使う且つ文字列以外をリンクにする場合はlink_to ~ doにしなければいけないのをよく忘れていました

ただ文字列をリンクにする場合
= link_to "ジャンルを探す",new_genru_path,id: "genru-bottom"
文字列以外をリンクにする場合
=link_to genru_path(genru.id),id: "genru-name" do # ジャンル名をリンクにする
  = genru.name

ホーム画面については、これくらいです。
次は、登録変更画面について記事にしたいと思います:smile:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?