TEHC CAMP 91期夜間休日 卒業後活動記録

7月19日 学習のアウトプット

Rubyドリル

任意の文字列に特定の文字列が含まれているか判断するプログラム

要件

  • 任意の文字列にcatとdogの文字列が含まれている場合は、True

  • 任意の文字列にcatとdogの文字列が含まれていない場合は、False

雛形

def include_cat_and_dog?(str)
 #処理
end

#呼び出し例
include_cat_and_dog?("catdog")

出力例

  • include_cat_and_dog?("catdog") → True

  • include_cat_and_dog?("catcat") → False

  • include_cat_and_dog?("1cat1cadog") → True

include?メソッド

指定した要素が含まれているか判断するメソッド

解答

def include_cat_and_dog?(str)
 if str.include?("cat") && str.include?("dog")
  puts True
 else
  puts False
 end
end

#呼び出し例
include_cat_and_dog?("catdog")

include?メソッドを使用してcatとdogが含まれているかを判断します。 さらに、演算子&&を使用することで、catとdogどちらも含まれているとういう条件になります。

ifとelse

要件

プログラムを実行すると

① 「[0]:カロリーを表示する、[1]:終了する」という選択肢が表示され、数字を入力することができる

② 0を入力すると「500kcal」と表示され、上記の①が繰り返される

③ 1を入力するとアプリケーションが終了する

while

条件によって繰り返し処理を行う

while 条件式 do
 処理するアクション
end

プログラムを終了させずに同じ処理を繰り返す場合は

while true do
 処理するアクション
end

⚠無限ループになるので、止める時はctrl+c

解答

while true do
 puts "[0]:カロリーを表示する"
 puts "[1]:終了する"
 input = gets.to_i
 
 if input == 0
  puts "500kcal"
 elsif input == 1
  exit
 end
end

while true do として、処理を繰り返します。 入力された値が、0の場合は500kcalを表示し、 1 が入力された場合は、exitとなり終了します。

progate

Ruby on Rails 学習コースⅩ

いいね機能の実装

まずは、likesテーブルを作成します。

$ rails g model Like user_id:integer post_id:integer

カラムも同時に作成しています。

値が空では登録できないようにバリデーションを設定します。

validates :user_id, {presence: true}
validates :post_id, {presence: true}

投稿にいいねしたかを表示させます。
show.html.erbファイルに記述します。

<% if Like.find_by(user_id: @current_user.id, post_id: @post.id) %>
 いいね!済み
<% else %>
 いいね!していません
<% end %>

likesコントローラーを作成します。 ビューファイルなどはいらないため、controllersフォルダに手動で作成します。

ルーティングを設定します。

post "likes/:post_id/create" => "likes#create"

likesコントローラーにcreateアクションを記述します。

def create
 @like = Like.new(
   user_id: @current_user.id,
   post_id: params[:post_id]  
 )
 @like.save
  redirect_to("/posts/#{params[:post_id]}")
end

createアクションへのリンクにします。
show.html.erbファイルの いいね!していませんの部分を

<%= link_to("いいね!", "/likes/#(@post.id)/create", {method: "post"}) %>

に書き換えます。

一言日記

最近、サボり気味でした。 モチベーションが上がらない…… というより、何がしたかったのかわからなくなった。 プログラミングスクールにいけば、転職して、人生変えられるって思ってたけど、 結局、そんなにうまく行かないですね。 今まで何もしてこなかったんだから、当然といえば当然。 35歳になってやっと、これからのことを考えるようになって、 今をなにをしないといけないのか、何ができるのかを考え行動するように心がけるようになりました。 ようやくスタートラインって感じです。 いや、まだ準備運動かも…… とはいえ、プログラミング、動画編集しながら、 地方移住&カフェ開業も視野にいれつつがんばります。