個人開発⑥ ~ログインページの作成~
アプリを使うために必要なログイン機能を付けていきます、今回はいくつかの入力を分けて登録出来るように”ウィザード形式によるログイン機能”を実装します
〜今回の記事の内容 〜
☆Gem 'device' の導入
⬇︎
登録画面の作成
⬇︎
ルーティングの設定
ウィザード形式とは?
ウィザード形式とは、利用者に一つずつ質問や設定項目を提示し、対話的に処理を進める操作方式のことを指します。コンピューターからの質問に答えながら、設定や登録を行うようなイメージです。
現在どの情報を入れているか分かっていると入力しやすくなります。
Gemの導入
今回はウィザード形式実装とういうことで、”devise”というGemを使用します
記述後に$ bundle install
個人開発⑤ ~トップページの作成(メインコンテンツ)~
トップページ作成についてはこれで最後になります
〜今回の記事の内容 〜
Gem、(haml、SCSS)の導入
ルーティング、@importの設定
⬇︎
ヘッダー、フッターの作成
⬇︎
☆メインコンテンツの作成
メインコンテンツの作成
メインコンテンツも後々作り足しも出来るように、パートを分けて作りながらアプリとして意味を持たせることを意識しました
最低でも3つの意味が必要と考えました、それが、”アプリとしての特徴”、”誰のためのアプリか?”、”アプリの使い方”です
サイトのイメージ(main.one)
開いて最初に目に付く部分なので、目を引けること、これが何のWebアプリなのか?とイメージを持ってもらうために画像をスライドショーで流すことを考えました
スライドショーですが、JavaScriptを使用せず、CSSのみで作成しています
アプリの紹介(main.two)
写真や文字が左右交互にするためにCSSで”flex-direction: row-reverse;” を使用しました、”display: flex;”を併用することで写真と文字を入れ替えることが出来ました
アプリの使い方(main.three)
縦に並列して並んでます、特徴として写真の間に一つ要素を挟むことでバランス良く並べることが出来ました
スプーンの作り方(main.four)
自作スプーンを出品できるというコンセプトがあったので、作り方を紹介する動画をyoutubeを利用して埋め込むことが出来ました
メインコンテンツの作成については以上になります!
今回はここまで!続きはまた次回!
個人開発④ ~トップページの作成(ヘッダー、フッター)~
前回、haml、SCSS、の導入は済んだのでトップページを作っていきたいと思います。
〜今回の記事の内容 〜
Gem、(haml、SCSS)の導入
ルーティング、@importの設定
⬇︎
☆ヘッダー、フッターの作成
⬇︎
メインコンテンツの作成
トップページはボリュームがあるので、"render"を使いいくつかに分けることで、管理しやすく、コードも読みやすくすることを意識しました
ヘッダーの作成
main/indexがトップページになります。部分テンプレートとして利用数ため”_top.html.haml”としてヘッダーを作ります
indexページで表示するために”= render partial: "top" ”と記述することで、表示できるようになります
カーソルを乗せた時に光るのは”:hover”の擬似要素で実装出来ましたが、ボタンを押した時に下層へ移動させるアクションを実装するには、JavaScriptを利用しました
今回はjQueryを導入して記述しています
jQueryを導入していない方は下記の記事を参考にどうぞ!
下層へ移動させる方法としてはボタンと移動させたい下層ページのidをJSによって結びつけることでした
_top.html.haml
_main.tow.html.haml
app/assets/javascriptsにJSファイルを作成し記述します
main.js
ここまで行えば、JSを利用して下層へ移動出来るようになっています
フッターの作成
今回のフッターの特徴は出品ボタンの固定です
コードもそれほど難しくなくHTNLとCSSのみで作成しています
_under.html.haml
under.scss
出品ボタンもコピペで使えますので試してみてください
今回はここまで!続きはまた次回書いていきます!
jQueryの導入
今回書くほどの量はないのですが、開発する時によく使うことになるかもしれないと思い、個人的な備忘録を兼ねて記事にします
jQueryとは?
jQuery(ジェイクエリー)は、ウェブブラウザ用のJavaScriptコードをより容易に記述できるようにするために設計されたJavaScriptライブラリである。
出典: Wikipedia
上記のようにJavaScriptを簡潔にかけるようにするくらいの認識で良いと思います
jQueryの導入は簡単です!
まず、Gemfileへ下記を記述
bundle installを実行
app/assets/javascripts/application.jsに以下の行を追加します
ライブラリを使用するために下記のリンクから一文をコピーして貼り付けます
https://developers.google.com/speed/libraries/#jquery
通常はこちらを<head>~</head>の間へ貼り付ければOKです!
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
hamlを使用している場合はコチラを使用してください
書き換えた一文をapp/view/layouts/application.html.hamlへ記述します
これでjQueryの導入は完了です、簡単なので使ってみてください!
個人開発③ ~トップページ(haml、SCSS)~
今回はトップページの作成です。
前回はアプリの立ち上げとして、REDAMEなどについて書きました。
まず、サイトの顔となるトップページを作成し、視覚で確認した方がイメージを持って作りやすいのでは?と考えました。
〜今回の記事の内容 〜
☆ Gem、(haml、SCSS)の導入
ルーティング、@importの設定
⬇︎
ヘッダー、フッターの作成
⬇︎
メインコンテンツの作成
haml、SCSSの導入
viewをhamlとscssで書いていくためにGemを導入します
Gemfileに’haml-rais’を記述して$ bundle install
これで、hanlの導入は完了ですが、現在ファイルの語尾に”.env”がついているものもあると思います。”.env”ファイルがある方はターミナルで $ rails haml:replace_erbsを入力します。
これで、”.env”から”.haml”に変化しました
続いて、SCSSですが手順は単純で、app/assets/styleseetsにあるCSSファイルをSCSSファイルに名前の変更をするだけでOKです!
SCSSを使用する際は@importを使います
application.scssへ@import "フォルダ名/ファイル名";と記述することで作成したSCSSファイルを使用することが出来ます
※ファイルによって分けてもクラス名が同じだと、他のviewにも影響を及ぼすため、クラスの名付けには被らないように注意することが必要です
このアプリにはいくつもViewを用意する必要があったため、管理しやすいように細かくフォルダを分けることを意識しました
続いてルーティングを設定し、トップページを見れるようにします
config/routes.rbを開き、root "main#index" を記述します
viewは $ rails g controller コントローラー名 でコントローラーと一緒に作ることが出来ます、ターミナルにて実行
view/mainのフォルダが作成されたので、その中にindex.html.hamlファイルを用意します
これでview/main/indexがhttp://localhost:3000/で立ち上げたときに表示されるようになります
ちょっと余談で通常ならコントローラーにもアクションを書き込む必要がありますが、root ~ の指定をしてる場合はそのまま表示することが出来ます
indexアクションは用意しなくても大丈夫です
今回はここまで!続きはまた次回書いていきます!
個人開発② ~Gitリポジトリ、DB設計~
今回は以前も行なったGitへのリポジトリとアプリのDB設計について書いていきます。
〜今回の記事の内容 〜
コンセプト、構想を練る
⬇︎
アプリを立ち上げ
⬇︎
☆Gitを利用して管理
⬇︎
☆DB設計(データベース設計)
Git、GitHubを利用した管理
以前も記事にして書いてましたが、再びここで書いておきます。
GItHub Dasktopをまだダウンロードしていない方はこちらからダウンロード出来ます
※上記と内容はほぼ一緒です
左上の「Current Repository」→「Add」→「Add Existing Repository」を選択します。
①にコミット名、②をクリックしてコミットします。
Publish repositoryをクリックします。
GitHub Desktop では、Publish ボタンを押すとリモートリポジトリが作られていない場合にリモートリポジトリも作ってくれます。
モーダルが現れます。公開するかのチェックですが、後からGIthubで変更も出来ます。
決めたら、Publish repositoryをクリックします。
ここまで完了すれば、GitHubにリポジトリが作られています。
あとはブランチを作成する準備として現在の情報をコミットします
写真は開発途中のものです
ここまででGitのリポジトリで管理することができます
次にDB設計に移ります
DB設計(データベース設計)
DB設計は個人的に苦手意識を持っており、ここでつまづくと後からの修正が大変なのではないか?と先入観を持っていました。
実際にはDB設計はしっかり作る必要はあるが、開発で度々変更出来ることを知り、知らないから勝手不安になっていただけでした(笑)
まずは”lucidchart(ルシッドチャート)”というアプリを使い、ER図を作っていくところからスタートしました。
Lucidchartは、ユーザーがチャートや図表の描画、改訂、共有を共同で行えるようにするために使用されるWebベースの独自のプラットフォームです。
wikipediaより抜粋
公式ホームページ
lucidcharは制限はありますが、無料で利用することができ、オンライン上で管理されているので、チーム開発などでメンバーとER図の共有が出来ます
今回lucidcharを利用し作成したER図が下記のものになります
こちらは拡大したものです
README(リードミー)に書き込むために
|カラム名|単位|制約、外部キー|、
1対多、多対多、などの必要な情報を考えながら書いていきます
上記はモデルにしたアプリで書いていたので、後々変わってくるだろうと思い
READMEにはまず確定しているテーブルを書き込みました
右側は後から変更した内容です
現在完成している部分のみですが、今後完成したものを後日載せようと思います、ひとまず、DB設計はこれで進めていきます
今回はここまで!続きはまた次回書いていきます!
個人開発① ~アプリの立ち上げ~
個人開発がデプロイまでに近づいてきたので、開発過程を順を追って書いていこうと思いました。
タイトル:spoon
使用言語:HTML(haml)、CSS(SCSS)、Ruby、Ruby on Rails、JavaScript、jQuery
なぜ作ろうと思ったのか?
趣味で釣りをやっているのですが、自分が興味のあるものを作ろうと思い立ったのがきっかけです。釣り具の販売サイトはたくさんあるので、売買を行うのはルアーの”スプーン”を中心に行うアプリにしようと決めました。
コンセプトは”自分で作って販売出来る”、売買する商品は”500円一律”で作り方のyoutyubuの埋め込みなどでアプリとしての使いやすさを意識しようと考えました。
誰のために作ったのか?
自分でルアーを作る方はネットや個人店で見かけたりしていたので、 釣りの好きな人、作るのが好きな人にとって、ちょっと面白いと思ってもらえることを目指して作成していました。
アプリの大まかな構想が決まってから、他のwebアプリを参考にアプリを立ち上げてにDB設計を考えることから始めました。
〜今回の記事の内容 〜
☆コンセプト、構想を練る
⬇︎
☆アプリを立ち上げ
⬇︎
Gitを利用して管理
⬇︎
DB設計(データベース設計)
アプリの立ち上げ
今回はMysQLにてデータベースを管理するためアプリ名の後にオプションを追記します
rails new アプリ名 --オプション
これで、アプリが立ち上がりました
アプリを立ち上げたところで、まずはViewを作り見やすくした方が良いかなと思い
$ rails db:createを実行します
下記のエラーが発生
調べてみるとRailsのデフォルトのデータベースがsqlite3のため設定しなければ、自動で作られてしまうそうです、解決するためには下記の手順を踏んでいきます
まず、datebese.yamlについて各詳細を書いておきます
config/datebese.yaml内の記述を下記の内容に書き換えていきます
こちらの内容に書き換えます
gemfileの内容も変更します
gemfileのこちらの行を
下記のように書き換えます
gemをアプリに取り入れるためにbundle installを行います
再び$ rails db:createを実行します
これで、MysQLでデータベースを作ることが出来ました
あとは、$ rails g controller コントローラー名 で作り、ルーティングを設定すれば、画面表示できるようになります
今回はここまで!続きはまた次回書いていきます!