チワワかわいいブログ

RUNTEQでrails勉強する日々の記録

Ruby silver勉強

途中まで書いたのが消えた Ruby silverの勉強ノート 文法 ブロックを受けるメソッド 配列のeachメソッド 要素に対してブロック内の処理が順に実行される [1, 2, 3].each do |value| p value end #=> 1, 2, 3が出力 each_with_indexメソッド 引数を2つ取り、…

2021/01/09 ブックマークボタンのajax化

ajaxとは 「Asynchronous JavaScript + XML」の略 Asynchronous →非同期の JavaScript + XMLを使って非同期の通信を行うこと 通常はリクエストを送信すると、全ての情報を通信してレスポンスが戻ってくる。 ajaxの通信ではリクエストにたいしてレスポンスが…

2021/01/07 掲示板のbookmarkの追加

やること 掲示板をブックマーク/解除出来る機能の追加 ブックマークの一覧表示の機能を追加 考えること 一つの掲示板に対し、ブックマークは複数 一つのユーザーに対し、ブックマークは複数 一つのブックマークに対し、掲示板はひとつ、ユーザーはひとつ boo…

2021/01/04 shallowオプションとか

ネスとしたルーティングに対してのform_with resources :boards, only: %i[index new create show] do resources :comments, shallow: true end としてルーティングを作成。 form_withでcommentに対してpostリクエストを送りたい。 def show @board = Board.…

2020/12/31 carrier_wave

掲示板に画像投稿機能をつける carrier_waveとmini_magickという2つのgemを使う 参考 techtechmedia.com carrier_wave→ファイルアップロード用のgem mini_magick→ファイル編集用のgem。利用にあたりImageMagickというソフトのインストールが必要。 実装する …

2020/12/30 decorator

参考 qiita.com decoratorとは ソフトウェアのデザインパターンの一つです。 既存のオブジェクトを新しいDecoratorオブジェクトでラップすることで既存の関数やクラスの中身を直接触ることなく、その外側から機能を追加したり書き換えたりする。 また、既存…

2020/12/30 flash

やったこと 登録成功・失敗時にフラッシュメッセージを出す 今まで if @user.save flash[:success] = 'ユーザー登録が完了しました' redirect_to login_path と記述していたが実は if @user.save redirect_to login_path, flash: { success: 'ユーザー登録が…

2020/12/30 i18nによる日本語化

やること rails-i18nと、手動でのファイル作成の2通りで日本語化する。 Ruby on Railsでは、デフォルトの言語設定が英語になっている。 configファイルの設定を変更しgem 'rails-i18n'を導入することで、言語設定を日本語に変更する。 また、gem 'rails-i18n…

2020/12/29 sorcery

やったこと form_with ラベルタグを以下のように書いていたら <%= f.label "First name" %> <%= f.text_field :first_name, class: "form-control" %> ブラウザでラベルをクリックしても入力フォームにカーソルが移動しない <%= f.label :first_name, "First…

2020/12/27 基礎課題2,3

application.scssではrequire_tree(同じディレクトリにあるscssファイルを全て読み込み)ではなく、@import 'top';のように個別に読み込む → ファイルの読み込む順番がわからなくなってしまうのを防ぐ bundlerを使うメリット bundlerを使うと、gemfileのラ…

2020/12/26 基礎課題1

環境構築から始める rubyのバージョンがインストールされていないとなるので、rbenv install 2.6.4でインストールして続行 bundle install --path vendor/bundle --path vendor/bundle オプションとは --プロジェクトのディレクトリ配下にある、vendor/bundl…

2020/12/24 テスト復習

間違えた問題 railsにあるファイルの役割 db/schema.rb データベースのスキーマ情報が書いてあるもの。 db/seed/rb データベースに初期データを作成する記述をするもの。 config/application.rb Railsアプリケーション全体の設定を行う。タイムゾーンや国際…

2020/12/23 補講課題

ようやくrailsチュートリアル一周したので、RUNTEQのチェックテスト前の補講課題 コマンド実行して環境構築 $ git checkout -b fix_[自分のアカウント名] #作業ブランチ作る $ rbenv local 2.6.6 #rubyのバージョンを指定 $ nodenv local 12.14.0 Node.jsの…

2020/12/22 補講課題

ようやくrailsチュートリアル一周したので、RUNTEQのチェックテスト前の補講課題 コマンド実行して環境構築 $ git checkout -b fix_[自分のアカウント名] #作業ブランチ作る $ rbenv local 2.6.6 #rubyのバージョンを指定 $ nodenv local 12.14.0 Node.jsの…

2020/12/22 railsチュートリアル14章最後

resources :users do ブロックを引数として受けることができる resources :users do member do get :following, :followers end end => /users/1/の中でさらに、/users/1/followingといったルーティングを指定できる。 @user ||= current_user @user がある…

2020/12/21 railsチュートリアル14章後半

rails console実行しても生成したRelationshipモデルを認識してくれなくなり中断 出たエラー irb(main):002:0> Relationship.new Traceback (most recent call last): 1: from (irb):2 NameError (uninitialized constant Relationship) console再起動したり…

2020/12/20 railsチュートリアル14章

フォローする モデルの作成(フォローとフォロワーのモデル設計) contentカラム、user_idカラム、userとの関連付け フォローする →user.id has_many follow_idとfollowed_id →フォロー用やフォロワー用のテーブル更新はどうするか? follower_idがfollwed_i…

2020/12/20 railsチュートリアル13章

micropostを削除する before_action :correct_user, only: :destroy def destroy @micropost.destroy #@micropostにはbefore actionで正しいか先に確認した投稿が入っている flash[:success] = "Micropost deleted" redirect_to request.referrer || root_ur…

2020/12/19 railsチュートリアル13章

マイクロポストモデルを作る micropostモデルを作る contentカラムはtext型にする→DB上ではstringでもtextでもパフォーマンスはほとんど変わらない、将来の変更に柔軟性が高い(データ上限が多いので) has_many --再登場、userとmicropostを関連付けする ra…

2020/12/18 railsチュートリアル12章

passwordresetsリソース メール認証の仕組み トークンを作る ↓ ハッシュ化する ↓ DBに保存 ↓ メール文面でトークンを保存 ↓ メールを送ったらトークンは忘れる ↓ 受信メールのなかでトークンとメールアドレスを認証 流れ 再設定フォームからemailを入力 ↓ em…

2020/12/17 railsチュートリアル11章

accountActivationsリソース resources :account_activations, only: [:edit] onlyで作るルーティングを指定できる GET /account_activations/:id/edit の:idのところはIDだけしか入れられないわけじゃなくて、トークンを入れるようにしてもいい :idがURLに…

2020/12/16 railsチュートリアル10章後半

一覧ページ作成 users_path => GET /users => indexアクションに到達 indexアクションは一番上、慣習的に順番が決まってる 複数のユーザーを生成するタスクを実装 faker gemを使ってそれっぽいデータを作れる gem 'faker', '2.1.2' db/seeds.rb 上で生成する…

2020/12/16 railsチュートリアル9章後半、10章

9章残り remember meをレイアウトに追加 チェックボックス <%= f.label :remember_me, class: "checkbox inline" do %> <%= f.check_box :remember_me %> <span>Remember me on this computer</span> <% end %> ログインフォームにチェックボックスを追加。 paramas[:sess…

2020/12/15 railsチュートリアル9章

今回やること cookiesを使ってセッション情報を保存する データベースとブラウザを使ってやりとりする ブラウザに暗号化したデータを保存(cookies) cookiesのパスワードとデータベースのデータが一致するかを確認する これまでは自分の覚えているパスワー…

2020/12/15 railsチュートリアル8章後半

ログインのテスト テスト用のデータのpassword_digestにハッシュ化されたパスワードのデータを入れたい bcryptのハッシュ化をhas_secure_passwordではなく自分で行う方法 password_digest: <%= User.digest('password') %> User.digest?レシーバーがUserク…

2020/12/14 railsチュートリアル8章

セッション sessionsコントローラ モデルは使わずに、モデル(データベース)以外のところにデータを保管する。 サーバーにある、保存する場所=sessionsに保管する。 sessionsに保存するデータを利用して、ログインしているかどうかわかる仕組みを作る。 ses…

2020/12/14 railsチュートリアル7章後編

redirect_to @user GET "/users/#{@user.id}" しますよということらしい。 progateでは、 redirect_to("/users/#{params[:id]}") とか書いてた部分なのに、あれってなってる。 reidrect_to user_path(@user) # 名前付きルートの引数に@userを渡すと reidrect…

2020/12/13 railsチュートリアル7章

railsチュートリアル7章をやる。 開発環境のみデバッグ情報を表示する <%= debug(params) if Rails.env.development? %> paramsとは railsが常に保有しているパラメータ情報、どこのURLにアクセスしているかなど 上のデバッグ情報を見ると、paramsのなかにい…

2020/12/11 railsチュートリアル

シンボル :name object_idが変わらない、整数の性質を持った可読性のあるオブジェクト => シンボルを使うと常に同じ場所を探すことになるのでハッシュのキーとして使う場合に探しやすい 文字列 "name" 毎回変わる クラス a = "foo" は a = String.new("foo")…

2020/12/05 環境構築

本日よりRUNTEQでの学習開始。 今日は環境構築から始めます。 これまでの勉強はprogateとcloud9で行っていたのでローカルでの準備は全くしていない状態からスタート。 エディタの準備 「ゼロからわかるRuby超入門」CHAPTER1を参考にする。 VScodeをインスト…