ruby 任意の文字列の最後の2文字を3回繰り返す

sliceメソッドを使うことで配列や文字列から指定した要素を取り出せる

(例)

array = [0,1,2,3]

ele1 = array.slice(1,2)

puts ele1 

=> 1 2

str("hello")

ele1 = str.slice(0, 2)

puts ele1

=> "he"

このメソッドを使って最後の2文字を3回繰り返します。

 

def end_two(str)

 last2 = str.slice(str.length - 2,2) 右から2番目を出力・2つ目まで出力。

puts last2 * 3

end

end_two("hello")

 

難しく考えすぎた・・・

コードをたくさん描いてしまった・・・

これからもアウトプットして覚えます。

 

拙いアウトプットではございますが

何かありましたらご指摘お願いします。

Hello!を入力した数字の回数分出力する。

今回はrubyの復習Hello!を入力した数字の回数分出力のアウトプットをします。

def output()
end

puts "何回表示させますか?"

output()

↓(作成する)

def output(num)

 num.times do

  puts "Hello!"

 end

end

 

puts "何回表示させますか?"

num = gets.to_i

output(num)

 

まずターミナルで出力した数字をnumに代入する。

numの回数分timesメソッドを使ってHello!を出力する。

 

ちょっと拙いアウトプットではございますが

何ありましたらよろしくお願いします。

 

中間テーブルの実装

今回は中間テーブルの実装についてアウトプットしたいと思います。

中間テーブルとはテーブル通しが「多対多」の関係の時に間に配置するテーブルのことです。今回はroomsテーブルとusersテーブルの中間テーブルを作成しようと思います。

 

1.中間テーブルのモデルの作成

rails g model room_user

2.マイグレーションファイルをインストールする前にカラムの追加

20210124090629_create_room_users

t.references :room, foreign_key: true

t.references :user, foreign_key :true

references→Railsで外部キーのカラムを追加する際に用いる。

foreign_key→他テーブルの情報を参照できる。

3.マイグレーションファイルのインストールを行う

rails db:migrate

 

ちょっと拙いアウトプットではございますが・・・

何かありましたらご教授よろしくお願いします。

validationの設定(名前の空白のエラーや文字数の制限)

validationの設定

データベース(mygrationファイル)に登録する際の設定をするため

models/user.rbに記述します。

 

validates :name, presence: true

presence(空ではNGだということ)

 

ちょっと拙いアウトプットではございますが・・・

何かありましたらご指摘よろしくお願いします。

ユーザー編集ページの遷移ができるためにビューファイルの編集

(旧) <div class="header-name">

        <a href="#">Tom</a>

        </div>

         ↑

前のカリキュラムの記述(CSSの設定のためTomを仮の名前で登録)

(新)<div class="header-name">

         <%= link_to current_user.name(表示したい名前), edit_user_path(rails routesで探す)(current_user) %>

        </div>

         ↑

link_toでページの遷移ができるようにし、その後表示したい名前を入れるcurrent_user.name,(今回の場合、マイグレーションファイルで登録している名前)

edit_user_path(rails routesで調べたpathを入れる)

(current_user)(pathの番号を入れる)

 

ちょっと拙いアウトプットではございますが・・・

何かありましたらアドバイスお願いします。

         

 

更新成功時のページの遷移

userの登録名のupdateが成功したときページ遷移が行われるよう実装

controllerのupdateアクションに記述を行う。

def update

 if current_user.update(user_params)

   redirect_to root_path

else

 render :edit

end

redirect_toとrenderの違いは表示までの経路

・redirect_to → ルーティング → コントローラー → ビュー アクションが返される

・render → ビューだけが返される

 

ちょっと拙いアウトプットではございますが・・・

暖かい目でよろしくお願いします。