fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

2018-10-01から1ヶ月間の記事一覧

RubyMineの設定すべき箇所

随時更新中 半角スペース、タブを可視化する 設定箇所 Preferences > Editor > General > Appearance Show whitespacesにチェックを入れる 設定理由 インデントのズレや行の末尾に不要な空白文字が入っている際にすぐ分かる。 インデントを空白2文字にする …

HerokuのWebサーバーをWEBrickからpumaに変更する

参照 devcenter.heroku.com config/puma.rb workers Integer(ENV['WEB_CONCURRENCY'] || 2) threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5) threads threads_count, threads_count preload_app! rackup DefaultRackup port ENV['PORT'] || 3000 en…

Herokuの本番環境でSSL

RailsをHerokuにデプロイした際に、SSLを強制させる設定 config/environments/production.rb Rails.application.configure do . . . # Force all access to the app over SSL, use Strict-Transport-Security, # and use secure cookies. config.force_ssl =…

古典的記事「Skinny Controller, Fat Model」を読む

こちらの記事 Buckblog: Skinny Controller, Fat Model この記事を読んで得られる知識、技術 Railsにおいて、どこに何を書くのか? 特にコントローラに何を書くか、モデルに何を書くか、の基礎となる指針 どんな記事か? 18 October 2006 と古い記事だが、Ra…

SCSSの書き方

基本的な書き方と、自身がハマったところ 基本的な書き方 公式 sass-lang.com日本語かもーんぬの場合はこちら ferret-plus.com 親を参照する場合 例えば、:hoverとかの場合 通常のCSS #logo { float: left; color: #fff; } #logo:hover { color: #fff; text-…

【link_to】imgタグにリンクを貼る方法

<%= link_to image_tag("sample.png", alt: "Sampleの写真"), root_path %>

Rails - タイトルタグの中身を動的に変更する

記事概要 各View毎にタイトルを変えたい場合の実装方法参考:rails tutorialの第3章、第4章 現状のコードと問題点 現状のコードだと、全てのページでタイトルが「Sample App」になってしまう。 application.html.erb <html> <head> <title>Sample App</title> </head> # ... </html> やりたいこと 下…

Rails - コントローラの作成

作成 rails g controller StaticPages home help about コントローラ名称はキャメルケース、複数形 コントローラ名の後にアクションの記述ができる ルーティングの設定やViewファイルが自動で追加される JS、CSS、テスト、ヘルパーなどのファイルが自動生成…

MVCとは何か、デメリット、メリットは?

MVCについて、定義は分かる。MVCがない場合、例えばViewからデータベースに直接アクセスし始めたら、どこで何をしているか誰も理解できないカオスなソースコードになるのは明らか。で、自分のその感覚が合っているのか、もう少し言語化して理解したいと思い…

【復習用】【各章まとめ】Everyday Rails - RSpecによるRailsテスト入門

第1章 イントロダクション https://forest-valley17.hatenablog.com/entry/2018/10/10/180159第2章 RailsにRSpecを導入する手順 https://forest-valley17.hatenablog.com/entry/2018/10/11/004138第3章 モデルスペック https://forest-valley17.hatenablog.c…

RSpecにおいて、テストの可読性を高める

everyday Rails 第8章 「テストの可読性を改善する(p146~)」を読んでおり、理解を深めたかったので下記で補完。下記の記事を読むことにより書籍の理解が深まったこと、またテストコード以外でも読みやすく記述する技に気づくことができたのでオススメ。 参照…

RSpec - Request Specにおいてsign_in / sign_outを実装する場合の設定

参照 Qiita記事とかで色々書かれていますが、公式docのWikiを参照 How To: sign in and out a user in Request type specs (specs tagged with type: :request) · plataformatec/devise Wiki · GitHub シンプルな実装 rails_helper.rbに下記の1行を追加する…

RSpecにおいて、FactoryBot.create(:xxx) の FactoryBot を省略する

毎回、下記のようにFactoryBotって書いているのが苦痛。everyday Rails にはこの書き方しか無かったから、こういうもんだと諦めていた。 let(:user) { FactoryBot.create(:user) } こう書きたい。 let(:user) { create(:user) } 解決方法 spec/rails_helper.…

Rubyの文字列結合において、 + ではなく 式展開#{} を使うべき理由

下記の記事で紹介されています。 techracho.bpsinc.jp

未経験からバックエンドエンジニアとして転職するのに時に作成したいポートフォリオについて

KENTAさんの動画から抽出 参照 www.youtube.com まとめ メディア系のWebアプリ開発がオススメ。下記の機能があれば良い。 記事一覧表示 記事詳細表示 記事投稿 管理ユーザー登録(認証系ライブラリの習得) 管理ユーザーログイン 画像ファイルのアップロード D…

【Rails】あるモデルがどんなカラムを持っているかを確認する方法

rails c して、そのモデルの column_names メソッドを呼ぶ。 User.column_names # => ["id", "name", "email"]

【RubyMine】No Rails found in SDK エラーでRailsを実行、およびデバッグ実行できないので解消した

RubyMineでデバッグしてみよう!と意気込んでみたものの、No Rails found in SDK (直訳:SDKの中にRailsが見つからないぜ?)で、できない... というわけで、解消しました。 まず試したこと 下記2つのQiita記事を参考にした。エラーの先輩たちに聞く。[RubyMi…

【2018年度版】フロント、バックエンド、DevOpsエンジニアで一流になるためのロードマップ(記事まとめ)

各分野のエンジニアを目指す場合、何を、どんな順番で学ぶべきかが明確になるため一読するのがオススメ。 フロントエンド qiita.com バックエンド qiita.com DevOps qiita.com 機械学習、データサイエンティスト 2018年2月版 tjo.hatenablog.com 2017年夏版 …

Rails - 名前付きルートにおける_pathと _urlの違いと使い分け

_pathは相対パスで、_urlは絶対パスである。 root_path -> '/' root_url -> 'http://www.example.com/' 使い分けとしては、 _path : 通常はこちらを使う。例えば、Viewにおける利用。 _url : redirect_toする場合のみ。主に、controllerにおいて用いられる。…

RailsにBootstrap3およびBootstrap4を導入する方法

gemを入れることですぐにできる。Bootstrap3か4を使うかで利用するgemが異なる。Bootstrap3:bootstrap-sass gem Bootstrap4:bootstrap gem Bootstrap3を導入する Gemfile gem 'bootstrap-sass', '~> 3.3.7' gem 'sass-rails', '>= 3.2' app/assets/stylesh…

RubyMine - ショートカット一覧

qiita.com

RSpecを学ぶ時、書く時に参考になる記事一覧

随時更新中。「everyday Rails RSpecによるRailsテスト入門」を読了後に読むモノ。 初めてRSpecを学ぶ場合は、何も考えずに書籍の購入をやりこむのがオススメ。 公式 - 基本的なマッチャ一覧 https://www.rubydoc.info/gems/rspec-expectations/frames#Built…

RSpec - コントローラスペックでは何をテストすべきか

前提 Rails5からは request spec で記述することが推奨され、公式から controller spec を書くことは非推奨とされている。 参考にした記事 RailsのController Spec | 酒と涙とRubyとRailsと Rails テスティングガイド | Rails ガイド テストすべき内容 Webリ…

【パーシャル】インスタンス変数の直接参照ではなく、localsで値を渡す

なぜlocalsで渡す必要があるのか インスタンス変数を直接使うと、Viewと特定のControllerとの依存が強まり、別の箇所で再利用しにくくなるため。 悪い例 Controller (良い例と同じ) class UsersController < ApplicationController def show @user = User.fi…

JavaScriptのファイルを読み込む位置はどこにすべきか?

回答 bodyタグの終端、すなわち </body> の直前。 理由 表示速度を速くするため javascriptファイルを読み込んでいる間は、HTMLファイルを読み込まない。そのため、ページのレンダリングを行わせてからjavascriptファイルを読み込むことで表示速度を早くする。その…

【各章まとめ】Everyday Rails - RSpecによるRailsテスト入門 - 第8章 スペックをDRYに保つ

復習用まとめ 本章で学ぶこと ワークフローをサポートモジュールに切り出す テスト内でインスタンス変数を再利用するかわりにletを使う shared_contextに共通のセットアップを移動する カスタムマッチャの作成 テストを集約して、複数のスペックを一つにする…

【各章まとめ】Everyday Rails - RSpecによるRailsテスト入門 - 第7章 リクエストスペック

Everyday Rails 「RSpecによるRailsテスト入門 - 第7章 リクエストスペック」の復習用まとめ。 letなどは第7章でまだ出てきていないため、DRYではない箇所多数。 目次 (APIの)GETリクエストのテスト (APIの)POSTリクエストのテスト コントローラスペックをリ…

RSpecでフィーチャースペックを行う

事前準備 gemのインストール group:test do gem 'capybara', '~> 2.15.2' end spec/rails_helper.rbにCapybaraの設定を追加 # This file is copied to spec/ when you run 'rails generate rspec:install' require 'spec_helper' ENV['RAILS_ENV'] ||= 'test…

Linux - 権限設定の確認や変更方法

下記のQiitaqiita.com

忘却曲線に基づいた効率の良い復習方法

忘却曲線とは? ある事柄を記憶した後、時間をおいたらどの程度思い出せるか(厳密には思い出すのに必要な時間)、についての実験結果を図示したもの 出典: 忘却曲線 - Wikipedia上記の図を見ると、1度も復習しない場合はわずか6日で学んだことの大部分を忘れ…