BNBのプログラミング勉強記録

ガチのプログラミング初心者が駆け上がっていくブログ

Rails

Railsルーティングのresources分解

全部のっけ resources :posts get '/posts', to: 'posts#index' get '/posts/new', to: 'posts#new', as: 'new_post' post '/posts', to: 'posts#create' get '/posts/:id', to: 'posts#show', as: 'post' get '/posts/:id/edit', to: 'posts#edit', as: 'ed…

railsで画像投稿機能を作ってherokuにデプロイする人へ

結論 railsのactieve storageという機能を使い、それにAWSのS3を連携させればできます 何があった Progateのrailsレッスンで、画像をアップロードするやり方を習うんですが、それってFile.binwriteを使う方法なんですよ。 で、普通にその機能を使って画像投…

挫折感(Ajax導入失敗、turbo_frame_tag導入失敗)

概要 駄目だ、心が折れそう。でも頑張る。 何があった Ajaxは https://qiita.com/hapiblog2020/items/3ba7e7edc02f01d987b9turbo_frame_tagは https://zenn.dev/shita1112/books/cat-hotwire-turboを参考に頑張って導入を試みたが、失敗。失敗の痕跡は https…

Progate修了以降に覚えたRailsやRubyのTips

何これ? ターミナルに書くやつ パーミッション設定の確認 パーミッション変更 テーブルに列追加(migrationに自動で記載される) scaffold herokuの環境変数設定 herokuの環境変数設定その2 herokuの環境変数を解除 rails s停止 モデルに書くやつ activest…

ProgateのRailsレッスンのまとめ

説明 ターミナルに書くやつ モデルに書くやつ 空白は駄目 上記+文字数制限 重複禁止 インスタンスメソッド(例) コントローラーに書くやつ 並び替え 戻す(redirect_toと違って、変数をそのまま使える) フラッシュ 画像を受け取って保存 find_byで複数条…

Railsで作るにあたってやったこと

いざ実践!ではあったんだけど引っかかりまくったのでメモ。 引っかかったポイント一覧 ターミナルの概念をよく分かってない(あとで調べる)ので引っかかったのだけど、rails sをする前に「rails g controller home top」とかをしないといけない感じなのね…

Rails環境構築

手順 rbenv versions でRubyのバージョン確認 ※Rails 7系はRuby 2.7以上が必要 gem install rails -v 7.0.3 でインストール rails -v でバージョン確認。ダメなら https://k-koh.hatenablog.com/entry/2020/01/21/120142 を参照(今回はターミナルに export …

メモ(Rails道場レッスン IV)

rubyの書き方ミス 論外ですな・・。 #没 def user{ return User.find_by(id: self.user_id) } ↓ #正解 def user return User.find_by(id: self.user_id) end バリデーションのカンマ忘れ #没 validates :user_id {presence: true} ↓ #正解 validates :user_i…

メモ(Rails XI)

gem(ジェム) gemとは、「よく使う機能」をパッケージ化したもの 「検索機能を作るgem」や「ハッシュ化するgem」など様々なgemが存在し、Railsにインストールすることで使用することができる bcrypt(ビークリプト)は「ハッシュ化するgem」 bcryptのインス…

メモ(Rails X)

いいねする def create @like = Like.new(user_id: @current_user.id, post_id: params[:post_id]) @like.save redirect_to("/posts/#{params[:post_id]}") end <%= link_to("いいね","/likes/#{@post.id}/create", {method: "post"}) %> いいねを消す def d…

メモ(Rails IX)

モデル内でインスタンスメソッドを使ったfind_byの書き換え ムズいわ、はっきり言って。また出たよ、俺の苦手な「self」・・・。 #posts_controller.rb def show @post = Post.find_by(id: params[:id]) @user = User.find_by(id: @post.user_id) end ↓ #pos…

メモ(Rails道場 III)

画像受け取り binwriteをbinwiteは痛い。エラーメッセージをよく読もう #没 if params[:image] image=params[:image] @user.image_name="#{@user.id}.jpg" File.binwite("/public/user_images/#{@user.image_name}",image.read) end #正解 if params[:image]…

メモ(Rails VIII)

パスワード非表示 <input type="password"> getとpostで同じURLを指定した場合 「/login」で2つのルーティングが被っているように見えるが、「get」と「post」では異なるルーティングとして扱われるので問題なし link_toメソッドではデフォルトでgetのルーティングを探し、form_tag…

メモ(Rails VII)

カラム追加 rails g migration add_image_name_to_users 追加したカラムをマイグレーションするには これまで「rails g model」によって生成されてきたマイグレーションファイルは、changeメソッドの中身が自動生成されていた なので、マイグレーションファ…

メモ(Rails VI)

string型のカラム2つ登録 rails g model User name:string email:string uniquness 重複を許さない validates :email,{uniqueness:true}

メモ(Rails道場 II)

ミスったところ。 バリデーションの書き方 タイポ、カラムの指定忘れ、カンマ忘れ。まあ、書き方忘れてたら見ればいいんですがね。どのくらい身についてるのかなあと。 #ボツ class Post < ApplicationRecord valiates :{ presence:true, length:{maximum:14…

メモ(Rails V)

バリデーション Validation=検証 不正なデータがデータベースに保存されないように、データをチェックする仕組みのことをバリデーションと言う バリデーションに引っかかった場合(不正なデータの場合)にはデータベースに保存されない モデルで設定する。 …

メモ(Rails IV)

上書き post=Post.find_by(id:1) post.content="hoge" post.save 削除 post=Post.find_by(id:1) post.destroy 上書き(実際にビューとコントローラにて) <div class="main posts-new"> <div class="container"> <h1 class="form-heading">編集する</h1> <%= form_tag("/posts/#{@post.id}/update") do %> <div class="form"> <div class="form-body"> </div></div></div></div>

メモ(React道場レッスン I)

ミスったところ等。 eachの書き方(根本的にだめ) #ボツ hoge.each |hoge| do #正解 hoge.each do |hoge| each宣言部分を「%=」にしちゃってた 「=」を付けるとprintされちゃうので、データベースの余計な部分がそのまま表示されてしまった #ボツ <%= @p…

メモ(Rails III)

find_byメソッド ある条件に合致するデータを取得することができる post=Post.find_by(id:3) #中略 post.content id 「posts/:id」と書くと「/posts/◯◯」のような全てのURLが該当 「posts/:id」というルーティングは「posts/index」より下に書かなければいけ…

メモ(Rails II)

埋め込みRubyの基本 一覧ページを作成する時は、indexというアクション名を使用することが一般的 index.html.erbのようなerbという形式のファイルでは、HTMLファイルの中にRubyのコードを記述することができる。「erb」とは「Embedded Ruby(埋め込みRuby)…

メモ(Rails I)

フォルダとか作成 ターミナルにて「tweet_app」フォルダとその中に多くのフォルダとファイルが作成される rails new tweet_app サーバー起動 rails server トップページ自動生成 このコマンドを実行すると、新しいWebページが自動で作られ、「localhost:3000…