りゅうじの学習blog

学習したことをアウトプットしていきます。

2021-01-01から1年間の記事一覧

2021年8月27日パーフェクト Ruby on Rails  1−3 Railsを始めよう!!

rails newしたときに使うrailsのバージョンをgem install rails -v 6.0.3でインストールできます。 bin とは binstub binディレクトリに用意されているファイルのことをbinstubと呼びます。それはbundle execをつけなくても実行できるファイルです。 ラッパ…

8月23日 パーフェクトRails 1章(その1)

1-1-1 プロジェクトを新規登録する際、git init で作業を記録する場を構築します。 Ruby2.7とRails6.0の組み合わせは警告が発生する場合があります。 1-1-2 Rubygemsとは RubyGemsは、Ruby言語用のパッケージ管理システムであり、ライブラリの配布用標準フォ…

個人開発サービスSurfTyping(サーフタイピング)リリース致しました。

surf-typing.herokuapp.com 腰椎椎間板ヘルニアで立てなくなり、休職したのが1年前でした。 病院内を車椅子で移動していた頃は絶望しかなかった。 端的に言えば、この事が原因で職もパートナーも失いました。 失った、、違いますね。自分から手放しました。…

helper_methodについて

コントローラで認可の設定での authorize(current_site) ビューで if current_site.main_images.present? このように使っていたcurrent_site は helper_method として宣言しているからビューでも使えるようになっています。 定義の仕方 def current_site @cu…

認可と認証の違い

学習中に出てくる認証と認可。 ぼんやりわかっているだけで説明できないと感じたので今回調べました。 認証 通信の相手が誰(なに)であるかを確認すること。 純粋な認証はそれが完了したからといって、何かが許される話とは関係がない。 例えば、身分証明書。…

【jQuery】 $(document).ready

$(document).ready(function() HTMLの読み込みが終わったら function()の後の処理を実行するコード $(document).ready(function(){ 処理 }); JSはHTMLが完全に読み込まれなていない状態で処理を実行すると正しく動作しないため、readyを使う必要がある。 最…

【CSS】object-fitの用途と値の種類

object-fit 画像などをボックスにどのようにはめ込むかを指定する。 fill ボックスサイズに合わせて縦横比を維持しないでリサイズして、全体が見えるようにはめ込む contain ボックスサイズに合わせて縦横比を維持しながらリサイズして、全体が見えるように…

【CSS】position: relative; と position: absolute; について

positionプロパティ 要素の配置する基準を指定するプロパティ。 abusolute 移動するときの基準がウィンドウか親要素になる。 複数の要素がある場合でも他の要素を無視して移動する。 高さの要素がなくなり浮いた状態になる。 relatibe 移動するときの基準が…

英語の記事を楽に読む方法

昨晩、教わった方法。 Windowを二つ開いて片方を全部日本語翻訳にして片方を英語のままにして読む。 全部翻訳して読むときの問題点がコードまで翻訳されてしまう事だった。 これで解決できる。 英語だけのページに拒否反応していたけど、これからどんどん立…

YoutubeをURLで埋め込む

記事投稿アプリにYoutubeをURLで埋め込みます。 カラムの準備 ユーザーが入力した値を保存する為のカラムを用意する。 #models/embed.rb class Embed < ApplicationRecord enum embed_type: { youtube: 0 } validates :identifier. length: { maximum: 200 }…

RSpecメモ

page.all('.box-footer')[0].click_button('更新する') これは、class: 'box-footer'とついている要素を全て取り出して配列にし、その中の一番最初の要素([0])を選択している。 select 'YouTube', from: 'embed[embed_type]' 'embed[embed_type]'に登録さ…

N+1問題

N+1問題とは 必要以上にSQLが発行されてしまい動作が悪くなってしまう問題の事です。 SQLとは データベースを操作するための言語です。データを挿入したり検索したりする際に利用します。 データベースとのやり取りを必要以上にしてします状態という事ですね…

公式ドキュメントを読むコツのメモ

公式ドキュメントを読むクセをつける 毎日何かの公式ドキュメントを読むようにする 自分自身に意識的に負荷をかける事で苦手意識がなくなる わからなくてしんどいのは成長痛なので、わからないからこそたくさん読んでまず慣れる事 語彙力をつける プログラミ…

新しく学んだRSpecの書き方のメモ

新しく学んだRSpecの書き方 アイキャッチ画像の横幅を100~700pxに指定した場合 システムスペックでcapibara使用 #systemspec内 略 eyecatch_width = rand(100..700) fill_in 'article_eyecatch_width', with: eyecatch_width 略 先に横幅100~700のランダムな…

私の学習に対する考え方の気付き

私はこれまで真面目に学習に取り組んできたという自負がありますが、受講生の中で優秀だと感じる方に遅れをとっているという自覚がありました。 何か地頭の良し悪し以外にも要因はあるのではないか?と学習方法についての話を色んな方に伺ったりしながら追求…

【Git】特定のコミットまで戻す方法

ゲームで言えば、前回のセーブポイントまで戻るというのと同じですね。 #ターミナル $ git log このようにcommit_id が表示されるので 戻りたいコミットの commit から後の文字列をコピーして #ターミナル $ git reset --hard 該当のcommit_id で戻れます。 …

kaminariを使ったページネーションの実装

kaminariのセットアップ まずインストール #Gemfile gem 'kaminari' #ターミナル bundle install --path vendor/bundle 続いてkaminari の設定を生成。 #ターミナル $ rails g kaminari:config 上記コマンドにより、config/initializers ディレクトリ直下に…

Punditの使い方

Pundit は認可まわりの機能を作成するのに有効なGemです。 Punditセットアップ #Gemfile gem 'pundit' #ターミナル bundle install --path vendor/bundle application_controllerにinclude #app/controllers/application_controller.rb class ApplicationCon…

AdminLTE 3を使って管理者ページを実装しよう・2

この記事の続きです。 https://ryujisurf55.hatenablog.com/entry/2021/04/30/180846 手順 管理者用のコントローラーを作成 ルーティングの設定 ビューの設定 ページタイトルの設定 1.管理者用のコントローラーを作成 まずはベースとなるadmin/base_controll…

AdminLTE 3を使って管理者ページを実装しよう・1

管理者(Admin)ページのログイン機能とトップページを実装します。 ログイン画面 トップページ 手順 AdminLTE 3 をインストールする JSとCSSを読み込ませる モデルに管理者かどうかを判別させるroleのカラムを追加する(enumの追加) 1.AdminLTE 3 をインストー…

sorcery で使えるようになるCoreなメソッド

こんにちは。りゅうじです。 SorceryのGitHubのCoreなものの中から私が課題で使用したものをまとめます。 この他にも詳しいコードを知りたい方は公式GitHubをご覧ください。 sorcery での実装のやり方はこちらの過去記事をどうぞ。 https://ryujisurf55.hate…

Sorceryでログイン機能を実装する

こんにちは。りゅうじです。 sorcery を使うのでまずはインストールします。 インストール #Gemfile gem 'sorcery' #ターミナル $ bundle install --path vendor/bundle 初期設定 #ターミナル $ bundle exec rails g sorcery:install このコマンドで必要最低…

content_for と yield でページタイトルを動的に表示

こんにちは。りゅうじです。 content_for と yield でページタイトルを動的に表示させます。 ページタイトルとはウインドウの上部のここです。 実装 #application.html.erb <title><%= page_title(yield(:title)) %></title> ここの page_title は helper で定義したものか…

三項演算子の書き方を例文を用いて解説

こんにちは、りゅうじです。 昨日の学習の際にコントローラーにこんなコードがありました。 #app/controllers/admin/articles/publishes_controller.rb @article.state = @article.publishable? ? :published : :publish_wait このコードの意味がわからない…

Decoratorでフルネームを表示させる(Draper)

こんにちは、りゅうじです。 Decorator とは Model とView の中間に追加するものです。 Model→View だったのを Model→Decorator→View こうする。 ここで思いました。似たようなものあったな…と。 helper です。 まずここの違いを簡単に説明します。 Decorato…

i18nによる日本語化対応

こんにちは、りゅうじです。 i18n を使って view や conrtoller に直接文字を入力する事なく日本語表示させる方法を書いていきます。 手順 デフォルトの言語を日本語に設定する gem 'rails-i18n' をインストール 複数のロケールファイルに読み込まれる様に p…

パーシャル(部分テンプレート)をrenderでcollectionオプションで呼び出す

こんにちは、りゅうじです。 こちらは 昨日書いたlocalsオプション の記事です。知らない方は合わせて読んでみてください。 https://ryujisurf55.hatenablog.com/ render をパーシャルで呼び出す際に collectionオプション という繰り返しパーシャルをレンダ…

パーシャル(部分テンプレート)をrenderでlocalsオプションで呼び出す

こんにちは、りゅうじです。 render でパーシャル(部分テンプレート)を呼び出す使い方をまとめました。 localsオプション のみです。 省略しない記述をまず覚える パーシャルを呼び出す上でオプションがあります。 部分的に省略する事ができず、省略するなら…

Ajaxの実装

こんにちは、りゅうじです。 Ajaxについて学習した事のまとめです。 Ajaxとは 読み方:一般的にはエイジャックス ウェブブラウザ内で非同期通信を行いながらインターフェイスの構築を行うプログラミング手法である。XMLHttpRequest(HTTP通信を行うためのJava…

findとfind_byの違い

こんにちは、りゅうじです。 id を検索する時によく使いますが両者の違いを理解しておく必要があるので 勉強しました。 結論 findメソッド id を検索キーとしてデータを取得する id 以外では検索不可 取得したいデータの id が具体的にわかっているとき(つま…