before_action :authenticate_user!とbefore_action :その他の名前の違い
①authenticate_user!と②他の名前でbefore_actionを定義している場合
①deviseの機能を使っているかつログインページのみに遷移する。
②遷移ページを選べる。
両方ともページ遷移の制限の際に使っている。
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 → ビューだけが返される
ちょっと拙いアウトプットではございますが・・・
暖かい目でよろしくお願いします。