介護 X ITO 

福祉の業界に携わりながら、IT(プログラム)を0から使用してソフトを作成しようと思っています。その他に介護、プログラムの出来事を発信しています。

【勤怠開発】自力で勤怠システムを作成しよう その4

トップページを作成していきます。

 

目次

 

 

トップページを作成しよう。

最初に、ブランチの切り替えをします。

  • git checkout -b static-pages

-bのオプションでブランチの作成と切り替えを同時に行うことがru出来る。

 

ルーティングにgetリクエストを追加します。

  • get  'static_pages/home'

これでrails shomeにアクセスすると表示されます。

 

 

gitに切り替えたブランチをpushしよう

  •  git add -A
  •  git commit -m "Add a Static Pages controller"
  •  git push -u origin static-pages

一度指定すれば、2回目以降は、gitpushのみで反映されます。

 

 

 

 

タイトルを表示しよう

上部のホーム|勤怠システムと表示されている部分がタイトルになります。

f:id:aroma99959:20190507090916p:plain

タイトル

 

 

どのように表示しているか、コードを確認してみます。

 

 

 home.html.erb

f:id:aroma99959:20190507092833p:plain

/kintai_app/app/views/static_pages/home.html.erb

provideメソッドにてyieldを使用し呼び出していますが、今の状態だと、ページを作成する度に、上記のコードを入れなければいけません。それを解消するためapplication.html.erbにコードを差し替えます。

 

 

application.html.erb

f:id:aroma99959:20190507093943p:plain

app/views/layouts/application.html.erb

差し替えることにより、一カ所で表示できるようになりました。

 

 

続いて、タイトルが空白になった場合でも表示されるようにするために、ヘルパーメソッドを使用し、表示されるようにします。

 

 

helpers/application_helper.rb

f:id:aroma99959:20190507091632p:plain

/kintai_app/app/helpers/application_helper.rb

作成したら、このコードに差し替えます。

 

 

 application.html.erb

f:id:aroma99959:20190507091811p:plain

/kintai_app/app/views/layouts/application.html.erb

これで、タイトルが空白の場合でも表示されるようになります。

 

 

最終的なhome.html.erbのコードを見てみましょう。

 

 

 home.html.erb

f:id:aroma99959:20190507091205p:plain

/kintai_app/app/views/static_pages/home.html.erb


差し替えたことにより、ここまでスッキリしました。

 

以上になります。

 

 

 

 

 

それでは、さらばーゆ。

 

Rubyの基本問題と解答 まとめ2

rubyにて基本となる、基礎問題と解答をアップします。

 

#6. シンボルについて

#シンボルとは主に文字列にコロン(:)を前に置いて定義したもの

 

#1. 自分の名前(:name)と年齢(:age)を出力してみましょう。
user = {:name => "ito" , :age => "38"}
puts user

#2. 自分の名前(:name)、年齢(:age)、性別(:sex)を設定し、性別のみ出力してみましょう。

user = {:name => "ito" ,:age => "38" , :sex => "man"}
puts user[:age]

#3. 自分の名前(:name)、年齢(:age)、性別(:sex)を設定し、出身国(:contry)を追加し、出力してみましょう。
user = {:name => "ito" ,:age => "38" , :sex => "man"}
puts user[:contry] = "japan"

puts user

 

#7.nilについて

# ハッシュをつかって出力してみましょう

 

#1. 自分の名前(:name)がtrueのときは 「わたしの名前は〇〇です。出身の国は日本です。」 と出力してみましょう。
user = { name: "伊藤"}
if user[:name]
puts "わたしの名前は#{user[:name]}です。出身の国は日本です。"
else
puts "わたしの名前は#{user[:name]}です。出身の国はわかりません。"
end

#2. 自分の名前(:name)falseのときは 「わたしの名前は〇〇です。出身の国はわかりません。」 と出力してみましょう。
user = {name: "伊藤" }

if user[:country]
puts "私の名前は#{user[:name]}です。出身の国は#{user[:country]}です"
else
puts "わたしの名前は#{user[:name]}です。出身の国はわかりません。"

end

 

#8. 配列の代入について


#配列の要素にハッシュを入れてみましょう

#1. userという配列に2人代入し、名前(:name),年齢(:age)を設定しインデックスの1番目を出力してみましょう。
user = [{name: "伊藤", age: "29"},
{name: "佐藤", age: "39"}
]

puts user[1]

#2. 1で作成した配列のインデックスの0番目の名前のみ出力してみましょう。
puts user [0] [:name]

#3. usersという配列に3人代入し、名前(:name),年齢(:age)を設定し、each文を使って順番に出力してみましょう。
users = [{name: "伊藤", age: "29"},
{name: "佐藤", age: "39"},
{name: "加藤", age: "49"}
]

users.each do |user|
puts user
end

 

#9. 配列の応用について

#1. usersという配列を作成し、自分の名前、年齢を配列に代入し連結を出力してみましょう。

users = ["伊藤","39"]
puts users

#2. 1で作成した配列に性別を追加し、出力してみましょう。
users = ["伊藤","39"]
puts users.push("men")
puts users

#3. prayerの配列の中に「StephenCurry」 ,「basketball」を代入し大文字に変換し連結し出力してみましょう。
prayer = ["StephenCurry" , "basketball"]
p prayer.map{|a| a.upcase }.join(" ")

#4. 3で作成したものを小文字に変換し連結し出力してみましょう。
p prayer.map{|a| a.downcase }.join(" ")


#map は、配列の要素の数だけブロック内の処理を繰り返し、結果として作成された配列を返します。

  #オブジェクト.map { |変数| 実行したい処理}

#joinメソッドは、配列の各要素を文字列に変換

 

 

 

#10. 特別問題


#1. ターミナル上で税抜き金額を入力したら、文字列で「税込金額は〇〇円です」を返すプログラムを作成してみましょう

puts "金額を入力して下さい。"

input = gets.chomp

#getsにて、この後にキーボードで入力したのを文字列として返し、chompにて改行をしないようにしています。

price = input.to_f * 1.08

#to_fメソッドは、文字列を浮動小数点数の表現と見なしてFloatオブジェクトに変換します。

puts "税込金額は#{price.to_i}円です"

#to_iにて整数に変換します。

 

 

 

 

 

それでは、さらばーゆ。

Rubyの基本問題と解答 まとめ

rubyにて基本となる、基礎問題と解答をアップします。

 

 

#1. 値の出力

#1. 「おはよう」 という文字列をputsを用いて出力しましょう。
puts "おはよう"

#2. 「20」 という数値をputsを用いて出力しましょう
puts 20

#3. 「5 + 10」 の計算式の結果をputsを用いて出力しましょう。
puts 5+10

#4. 「10 - 5」 の計算式の結果をputsを用いて出力しましょう。
puts 10-5

#5. 「2 * 15」 の計算式の結果をputsを用いて出力しましょう。
puts 2*15

#6. 「30 / 6」 の計算式の結果をputsを用いて出力しましょう。
puts 30/6

#7. 「10 % 3」 の計算式の結果をputsを用いて出力しましょう。
puts 10%3

#8. 「+」 演算子を用いて、計算式の結果が55となるよう出力しましょう。
puts 50+5

 

#2. 変数の出力

#1. 「text」 という変数に 「おはよう」 という文字列を代入し出力しましょう。
text = "おはよう"
puts text

#2. 「message」 という変数に 「Ruby」 という文字を代入し出力しましょう。
message = "Ruby"
puts message

#3. 「text」 という変数に 「エンジニア」 という文字を代入し,2で作成した 「message」 と 「text」 を連結して出力しましょう。
text = "エンジニア"
puts message + text
#4. 「num1」 に 「3」 を代入し出力しましょう。
num1 = 3

#5. 「num2」 に 「5」 を代入し 4で作成した「num1」 と 「num2」を足した結果を出力しましょう。
num2 = 5
puts num1 + num2
#6. 「num3」 に 「5」 を代入し、上書きし 「3」 を代入し出力しましょう。
num3 = 5
puts num3

num3 = 3
puts num3
#7. 6で作成した 「num3」 に 「2」 を引いて代入し出力しましょう。
puts num3 - 2

#8. 変数に出身地名を代入に 「私の出身は〇〇です。」 出力しましょう。
cuntry = "愛知県"
puts "私の出身は#{cuntry}です。"

 

#3. 条件分岐

#1. 「rain」 という変数に 「65」 を代入し、雨が降る確率が60%以上の場合「傘を持っていきましょう」と出力しましょう。
rain = 65

if rain >= 60
puts "傘を持っていきましょう"
end

#2. 雨の確率が60%以上なら 「傘をもっていってください。」 もし雨の確率が60%未満40%以上なら 「傘を持って行った方がいいですね。」 それ以外の場合「傘はいりません。」と出力しましょう。
if rain > 60
puts "傘をもっていってください。"
elsif rain >= 40
puts "傘を持って行った方がいいですね。"
else
puts "傘はいりません"
end

#3. 「name」 という変数に自分の名前を代入し、if文で正しかった場合 「私の名前は〇〇です」 出力しましょう。
name = "伊藤"

if name == "伊藤"
puts "私の名前は伊藤です"
end

#4. 「name」 という変数に自分の名前を代入し、if文で 「私の名前は〇〇ではありません」 と出力しましょう。
name = "伊藤"

if name != "田中"
puts "私の名前は田中ではありません"
end

 

#4.配列について

#1. 「countries」 という変数に 「日本、アメリカ、イタリア」 と代入し、出力してみましょう。
countries = ["日本","アメリカ","イタリア"]

puts countries
#2. 「countries」 という変数に 「日本、アメリカ、イタリア」 と代入し、配列のインデックスの番号を指定して 「私の出身はイタリアです。」 となるように出力しましょう。
countries = ["日本","アメリカ","イタリア"]

puts "私の出身は#{countries[2]}です。"
#3. 「subject」 という変数に 「国語、数学、体育」 という文字列を 「each」 文で 「私は〇〇が好きです」 と出力してみましょう。
subject =["国語","数学","体育"]

subject.each do |s|
puts "私は#{s}が好きです"
end

 

#5. ハッシュについて

#配列は1つの要素にオブジェクトが1つに対してだが、ハッシュはオブジェクトがキーとバリューの二つ入っているのが特長

 

#1. 自分の名前(:name)と性別(:sex)を出力してみましょう。
user = {"name" => "ito", "sex" => "man"} #name キー ito バリュー
puts user

#2. 1で作成したハッシュの(:name)を上書きして出力してみましょう。
user = {"name" => "ito" ,"sex" => "man"}
puts user

puts user["name"] = "tarako"
puts user

#3. 1で作成したハッシュに出身国(:country)を追加し出力してみましょう。
user = {"name" => "ito", "sex" => "man"}
puts user["country"] = "japan"
puts user

 

 

 

 

それでは、さらばーゆ。

【勤怠開発】自力で勤怠システムを作成しよう その3

Herokuのセットアップとデプロイ

  • HEROKUを使用することにより、プラットフォームをインターネット越し(本番環境)で使えるようになります。
  • デプロイとは、使える状態にするという意味です。

 

 

1.Herokuに登録

 

2.本番環境用のデータベースをgemに追加する。

f:id:aroma99959:20190416153638p:plain

本番環境gem
  • gem 'pg', '0.20.0' が本番環境用のgemになります。

 

3.bundle install --without productionを実行

  • 本番環境のgemをローカル環境にインストールしないようにする必要があります。
  • bundle install --without productionを実行することにより、本番環境のgemをインストールしないようにできます。

 

4.開発環境にHerokuをインストールする

  • source <(curl -sL https://cdn.learnenough.com/heroku_install)
  • 上記のコマンドでインストール後、heroku --versionで正しくインストール出来たか確認します。バージョンが表示されればOKです。

 

5.Herokuにログイン

  • heroku login --interactive実行し、Herokuで登録したemailとpassを入力します。

 

6.ログイン後、SSHキー追加

  • gitで登録したSSHキーを追加します。
  • heroku keys:addで実行します。Y/Nと聞かれますがYと入力して下さい。

 

7.Herokuに新しいアプリケーションを作成

  • heroku createを実行します。

 

8.Herokuにpushする

  • git push heroku masterを実行しpushします。

f:id:aroma99959:20190416160801p:plain

heroku デプロイ画面

 

以上になります。上記の方法でデプロイがうまく行かない場合は以下の記事を参考にして下さい。

 

 

参考記事

Cloud9でHerokuが使えない時の対処法

https://qiita.com/bdogrep/items/8620dbba5e4c3fd859df

 

 

 

 

 

それでは、さらばーゆ。

【勤怠開発】自力で勤怠システムを作成しよう その2

gitのインストールとセットアップ

 

cloud9では、デフォルトでgitが導入されているので、インストールは必要ありません。そのままセットアップしていきます。

 

初回のみuser.nameとuser.emailの登録が必要です。

 

ターミナルで、

  •   $ git config --global user.name "名前を記入"
  •   $ git config --global user.email アドレスを記入

 

名前は、ダブルクォーテーションで囲います。

 

登録出来たかに確認は、

  •   $ git config user.name(email)

で確認できます。

 

登録が確認出来たら、gitに登録したいルートディレクトリに移動します。

f:id:aroma99959:20190409111025p:plain

kintai

私の場合はkintai_appになります。

 

移動したらgitレポジトリの新規作成を行います。

  •   git init

 

git initを実行後、

  •   git add -A

を実行します。このコマンドを実行すると全てのファイルがレポジトリに追加されます。

 

追加されたファイルの確認は、

  •   git status

で確認出来ます。

 

レポジトリに追加後、commitにてレポジトリに反映させます。(下書き保存)

  •   git commit -m "kintai"

-mを指定することにより、コメントを入力できます。

 

 

git hubにアップロードしよう

 

 続いてgit hudにアップロードしていきます。

 

1. git hubに登録します

 

2.git hubにて新規でレポジトリの作成をします。  

  • 右上の+を押し、New repesitoryを選びます。
  • create画面が出たら好きな名前を入れCreate repesitoryを押します。

作成後に以下の画面が出ると思います。

  • git remote add origin git@github.com:ユーザー名kintaiB.git
  • git push -u origin master

上記は、githubにプッシュするために必要なコマンドになります。ユーザー名は自分で登録した名前、kintaiBの部分はレポジトリで作成した名前になります。

 

 

3.公開鍵の登録

  このまま2のコマンドを入れてもセキュリティの関係でエラーになりアップロード出来ません。そのためセキュリティとなる鍵を設定します。

  手順として

  •      cdにてディレクトリの移動(ec2-user~)
  •      ls - laにてsshの場所を探す
  •      cd .sshにてディレクトリの移動
  •      ll にてユーザー鍵が登録されているか確認
  •      cdにてディレクトリの移動(ec2-user~)
  •      ssh-keygen -t rsa -C ""  (公開鍵の作成)
  •               Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa):  エンター押す
  •               Enter passphrase (empty for no passphrase):        パスワードが聞かれるので登録します

 

そうすると

f:id:aroma99959:20190413084303p:plain

公開鍵

謎の暗号が出てきます。これで、秘密鍵、公開鍵の両方が登録されました。

 

 

ll にて鍵のチェックをするとrsaが追加されています。その中で rsa.pubが公開鍵になります。

 

  • cat id_rsa.pub コマンドで公開鍵を表示させます。

f:id:aroma99959:20190413084758p:plain

公開鍵

 何やら暗号が出てきました。これをコピーしてgithubのDeploy keyに貼り付けます。

 

f:id:aroma99959:20190413083946p:plain

git hub

必ず Allow~にチェックを入れて下さい。Add keyで登録します。

これで登録完了です。

 

最後に

  • cd 
  • cd environment
  • cd kintai_app

にてディレクトリの移動をし、上記2番のコマンドを実行をすると、githubにプッシュできると思います。

 

f:id:aroma99959:20190414084221p:plain

github

以上になります。

次回はherokuについて進めて行きます。

 

 

 

 

 

それでは、さらばーゆ。

【勤怠開発】自力で勤怠システムを作成しよう その1

1から勤怠システムを作成していきます。

最初は開発環境を構築します。

 

開発環境:aws cloud9

 

目次

 

 

 

 

 

railsをインストール

 

  $ printf "install: -N \nupdate: -N\n" >> ~/.gemrc

 

これは、何ぞや?と思いましたが、調べると、gemをインストールする時に、ドキュメントをインストールしないと言う設定をgemファイルに追記する設定見たいです。

 

参考

https://teratail.com/questions/167348

 

railsをインストールします

  $ gem install rails -v 5.1.6

-vでバージョンを指定できます。

 

 

次に新規でアプリケーションの作成を行います。

  $ rails _5.1.6_ new kintai_app

f:id:aroma99959:20190402192013p:plain

これでディレクトリが作成されました。

 

 

 

Bundlerとは

gem同士の互換性を保ちながら、パッケージの種類やバージョンを管理してくれる仕組みのこと。

 

続いて、gemファイルを書き換えます。

f:id:aroma99959:20190402193801p:plain

 

 書き換え後、「bundle install」を行います。

エラーが出たら「bundle update」してみて下さい。

 

本番環境のgemも入っているのでローカル環境にインストールしないようにする必要があります。ローカル環境化でインストールしてしまうと、「rairs serverが開かなくなると思います。そこで「bundle install --without production」を実行することによって、本番環境のgemをskipできます。

 

 

 

rails severに表示させてみよう

 

実際に表示させるために、controllerrootの設定をする必要があります。

・contoroller側

f:id:aroma99959:20190404083715p:plain

contoroller側 表示

アクションを指定します。今回はdef goodとしてます。

renderとはレンダリングのことで、実際に表示させたい内容を生成します。

render htmlにて”good”を表示します

 

 

・root側

アクションを指定するだけでは、サーバーに表示は出来ないのでrootで表示させたいアクションを指定します。

f:id:aroma99959:20190404085253p:plain

root側 表示

rootにてapplicationコントローラーのgoodアクションを実行してと指示を出します。

クォーテーションに関しては、シングル ' でもダブル " どちらでも表示は出来ます。

 

 

・実際の表示画面

f:id:aroma99959:20190404090254p:plain

rails sever表示

controller、rootを指定後、表示させることが出来ました。

 

 

次回は、gitとherokuの設定をしていきます。

 

 

 

 

それでは、さらばーゆ。