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

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

Progate

ProgateのRailsレッスンのまとめ

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

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 …

Ruby環境構築

流れ 「Homebrew」をインストールする 「Homebrew」を用いて「rbenv」をインストールする 「rbenv」を用いてRubyをインストールする 手順 brew -v Homebrewがインストールされていないことを確認 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.…

メモ(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)…

メモ(HTML & CSS 中級 道場レッスン )

手こずった箇所、ミスった箇所など。 ブロック要素を左右に並べ、右は右に寄せる <footer> <div> Progate </div> <ul> <li> 会社概要 </li> <li> 採用 </li> <li> お問い合わせ </li> </ul> </footer> footer div{ float:left; } footer ul{ float:right; } 忘れていたCSS要素 background-size: cover;・・・1枚の画像で表示範…

メモ(Rails I)

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

メモ(React IV)

基本 フォームが送信されたときに処理を実行するには、formタグに対してonSubmitイベントを指定する フォームの入力や削除が行われたときに処理を実行するには、onChangeイベントを用いる。inputタグに対してonChangeイベントを指定する。 入力値の取得は、o…

メモ(React III)

総合演習 構造は下記のとおり。 Appで各コンポーネントを配置 MainにてLessonのstateを定義し、mapメソッドにてLessonコンポーネントを表示。 Lessonにてコンストラクタ設定 コンストラクタに、イズオープンのstateを追加。初期値はfalse こっからトリッキー…

メモ(React II)

基本 JSXにクラス名をつける場合、HTMLと書き方が違うため注意 クラス名は「className='クラス名'」 コンポーネントは「部品」や「パーツ」という意味。Reactでは、見た目を機能ごとにコンポーネント化して、コンポーネントを組み合わせることでWebサイトの…

メモ(React I)

Reactを読み込んでrenderにjsxを記述 JSXとJS ( JavaScript ) の記述部分は分かれている renderメソッドのreturn内のみ、JSXで記述する必要がある JSXで記述された要素はブラウザに表示される import React from 'react'; class App extends React.Component…

メモ(javascript V)

エクスポートとインポート(defaultエクスポート) クラスや定数をエクスポートしてインポートしたらインポートしたファイルで使える デフォルトエクスポートは1ファイル1つの値のみ(なのでimportで違う定数名にしても読み込める) export default Animal; …

メモ(javascript IV)

クラス定義、コンストラクタ、引数にてクラス呼び出し class Animal { constructor(name,age) { this.name = name; this.age = age; } } const animal = new Animal("モカ",8); console.log(`名前: ${animal.name}`); console.log(`年齢: ${animal.age}`); …

メモ(Python V)

継承 from menu_item import MenuItem class Food(MenuItem): pass オーバーライドとsuper menu_item.py class MenuItem: def __init__(self, name, price): self.name = name self.price = price def info(self): return self.name + ': ¥' + str(self.pric…

メモ(Python IV)

クラス作成とインスタンス生成 class MenuItem: pass menu_item1=MenuItem() インスタンス変数への値の代入と出力 menu_item1に「name」が「サンドイッチ」であるという情報を追加することができる この時、「name」のことを「インスタンス変数」と呼ぶ clas…

メモ(Python III)

関数の定義と呼び出し def print_hand(): print('グーを出しました') print_hand() 仮引数 def print_hand(hand): print(hand+'を出しました') print_hand('グー') print_hand('パー') 複数の引数 def print_hand(hand,name): print(name+'は'+hand + 'を出…

メモ(Python II)

基本 配列のことはリストという。[1,2,3]と記述 インデックスは0から。他と一緒。 例 print(foods[0]) というように出力。これも同じですね〜 上の「同じ」っていうのが、これまで学習してきたjavascript、Ruby、Java、phpのどれと同じってところまでは正直…

メモ(php IV)

感想 すっげー難しかった。ダメかも・・。配列とコンストラクタとゲッターが合わさると頭がこんがらがる。ただ、どこが難しかったかは分かる。そして一つ一つの意味も分かる。組み合わさった時に訳が分からなくなる。どうすればいいんだ。やっぱ自分で一から…