2020-01-01から1年間の記事一覧
掲示板に画像投稿機能をつける carrier_waveとmini_magickという2つのgemを使う 参考 techtechmedia.com carrier_wave→ファイルアップロード用のgem mini_magick→ファイル編集用のgem。利用にあたりImageMagickというソフトのインストールが必要。 実装する …
参考 qiita.com decoratorとは ソフトウェアのデザインパターンの一つです。 既存のオブジェクトを新しいDecoratorオブジェクトでラップすることで既存の関数やクラスの中身を直接触ることなく、その外側から機能を追加したり書き換えたりする。 また、既存…
やったこと 登録成功・失敗時にフラッシュメッセージを出す 今まで if @user.save flash[:success] = 'ユーザー登録が完了しました' redirect_to login_path と記述していたが実は if @user.save redirect_to login_path, flash: { success: 'ユーザー登録が…
やること rails-i18nと、手動でのファイル作成の2通りで日本語化する。 Ruby on Railsでは、デフォルトの言語設定が英語になっている。 configファイルの設定を変更しgem 'rails-i18n'を導入することで、言語設定を日本語に変更する。 また、gem 'rails-i18n…
やったこと form_with ラベルタグを以下のように書いていたら <%= f.label "First name" %> <%= f.text_field :first_name, class: "form-control" %> ブラウザでラベルをクリックしても入力フォームにカーソルが移動しない <%= f.label :first_name, "First…
application.scssではrequire_tree(同じディレクトリにあるscssファイルを全て読み込み)ではなく、@import 'top';のように個別に読み込む → ファイルの読み込む順番がわからなくなってしまうのを防ぐ bundlerを使うメリット bundlerを使うと、gemfileのラ…
環境構築から始める rubyのバージョンがインストールされていないとなるので、rbenv install 2.6.4でインストールして続行 bundle install --path vendor/bundle --path vendor/bundle オプションとは --プロジェクトのディレクトリ配下にある、vendor/bundl…
間違えた問題 railsにあるファイルの役割 db/schema.rb データベースのスキーマ情報が書いてあるもの。 db/seed/rb データベースに初期データを作成する記述をするもの。 config/application.rb Railsアプリケーション全体の設定を行う。タイムゾーンや国際…
ようやくrailsチュートリアル一周したので、RUNTEQのチェックテスト前の補講課題 コマンド実行して環境構築 $ git checkout -b fix_[自分のアカウント名] #作業ブランチ作る $ rbenv local 2.6.6 #rubyのバージョンを指定 $ nodenv local 12.14.0 Node.jsの…
ようやくrailsチュートリアル一周したので、RUNTEQのチェックテスト前の補講課題 コマンド実行して環境構築 $ git checkout -b fix_[自分のアカウント名] #作業ブランチ作る $ rbenv local 2.6.6 #rubyのバージョンを指定 $ nodenv local 12.14.0 Node.jsの…
resources :users do ブロックを引数として受けることができる resources :users do member do get :following, :followers end end => /users/1/の中でさらに、/users/1/followingといったルーティングを指定できる。 @user ||= current_user @user がある…
rails console実行しても生成したRelationshipモデルを認識してくれなくなり中断 出たエラー irb(main):002:0> Relationship.new Traceback (most recent call last): 1: from (irb):2 NameError (uninitialized constant Relationship) console再起動したり…
フォローする モデルの作成(フォローとフォロワーのモデル設計) contentカラム、user_idカラム、userとの関連付け フォローする →user.id has_many follow_idとfollowed_id →フォロー用やフォロワー用のテーブル更新はどうするか? follower_idがfollwed_i…
micropostを削除する before_action :correct_user, only: :destroy def destroy @micropost.destroy #@micropostにはbefore actionで正しいか先に確認した投稿が入っている flash[:success] = "Micropost deleted" redirect_to request.referrer || root_ur…
マイクロポストモデルを作る micropostモデルを作る contentカラムはtext型にする→DB上ではstringでもtextでもパフォーマンスはほとんど変わらない、将来の変更に柔軟性が高い(データ上限が多いので) has_many --再登場、userとmicropostを関連付けする ra…
passwordresetsリソース メール認証の仕組み トークンを作る ↓ ハッシュ化する ↓ DBに保存 ↓ メール文面でトークンを保存 ↓ メールを送ったらトークンは忘れる ↓ 受信メールのなかでトークンとメールアドレスを認証 流れ 再設定フォームからemailを入力 ↓ em…
accountActivationsリソース resources :account_activations, only: [:edit] onlyで作るルーティングを指定できる GET /account_activations/:id/edit の:idのところはIDだけしか入れられないわけじゃなくて、トークンを入れるようにしてもいい :idがURLに…
一覧ページ作成 users_path => GET /users => indexアクションに到達 indexアクションは一番上、慣習的に順番が決まってる 複数のユーザーを生成するタスクを実装 faker gemを使ってそれっぽいデータを作れる gem 'faker', '2.1.2' db/seeds.rb 上で生成する…
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…
今回やること cookiesを使ってセッション情報を保存する データベースとブラウザを使ってやりとりする ブラウザに暗号化したデータを保存(cookies) cookiesのパスワードとデータベースのデータが一致するかを確認する これまでは自分の覚えているパスワー…
ログインのテスト テスト用のデータのpassword_digestにハッシュ化されたパスワードのデータを入れたい bcryptのハッシュ化をhas_secure_passwordではなく自分で行う方法 password_digest: <%= User.digest('password') %> User.digest?レシーバーがUserク…
セッション sessionsコントローラ モデルは使わずに、モデル(データベース)以外のところにデータを保管する。 サーバーにある、保存する場所=sessionsに保管する。 sessionsに保存するデータを利用して、ログインしているかどうかわかる仕組みを作る。 ses…
redirect_to @user GET "/users/#{@user.id}" しますよということらしい。 progateでは、 redirect_to("/users/#{params[:id]}") とか書いてた部分なのに、あれってなってる。 reidrect_to user_path(@user) # 名前付きルートの引数に@userを渡すと reidrect…
railsチュートリアル7章をやる。 開発環境のみデバッグ情報を表示する <%= debug(params) if Rails.env.development? %> paramsとは railsが常に保有しているパラメータ情報、どこのURLにアクセスしているかなど 上のデバッグ情報を見ると、paramsのなかにい…
シンボル :name object_idが変わらない、整数の性質を持った可読性のあるオブジェクト => シンボルを使うと常に同じ場所を探すことになるのでハッシュのキーとして使う場合に探しやすい 文字列 "name" 毎回変わる クラス a = "foo" は a = String.new("foo")…
本日よりRUNTEQでの学習開始。 今日は環境構築から始めます。 これまでの勉強はprogateとcloud9で行っていたのでローカルでの準備は全くしていない状態からスタート。 エディタの準備 「ゼロからわかるRuby超入門」CHAPTER1を参考にする。 VScodeをインスト…
31歳、事務職がプログラミング全くの未経験からエンジニアを目指して勉強します。 このブログでは日々勉強の記録や学習のアウトプットをしていきます! 日記とか全然続かないタイプだけどめっちゃ頑張る! これからやること 2020年12月からRUNTEQに入学し、R…