fv17の日記

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

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

Capybara - Capybara::DriverNotFoundError:が出てRspecでエラーとなる場合の対処方法

Everyday rails Rspecの書籍(P106あたり)を写経してたらエラーで詰まった。 問題 Rspecにおいて、visit root_pathで下記エラー Capybara::DriverNotFoundError: no driver called :selenium_chrome was found, available drivers: :rack_test, :selenium 原…

RSpec - フィーチャスペックを導入する

everyday Rails の「第6章 フィーチャスペックでUIをテストする」の復習用まとめ。 書籍から内容の増減があります。 本章の前提 フィーチャースペックとは、モデルとコントローラが 他の モデルやコントローラとうまく一緒に動作することを確認するテ…

【各章まとめ】Everyday Rails - RSpecによるRailsテスト入門 - 第5章 コントローラスペック

自分の備忘用に記載。 そのため書籍から内容の増減があります。 本章の前提 コントローラのテストは削除、あるいは統合テスト等への移行が推奨 そのため、既存システムでコントローラのテストがある場合に備えて学ぶ 筆者は、コントローラのテストはアクセス…

factory_bot - create_listメソッドの使い方

使い方 create_list(<作成したいファクトリ名>, <作成するインスタンス数>, *<トレイトやオーバーライドしたい項目>) # 戻り値はArray 具体例 create_list(:user, 3, :admin, :male, name: "Jon Snow") adminとmaleはここではtrait nameはオーバーライドさせ…

RSpec - FactoryBotを導入し、効率良く意味のあるデータを作成する

「Everyday Rails - RSpecによるRailsテスト入門 - 第4章 意味のあるテストデータの作成 」の復習用まとめ。leanpub.com 本章のゴール Factory Botに焦点を当て、 ファクトリの利点と欠点 ファクトリを用いたテスト実装 その他、ファクトリのリファクタリ…

RSpec - モデルスペックとは

「Everyday Rails - RSpecによるRailsテスト入門 - 第3章 モデルスペック 」の復習用まとめ。leanpub.com 本章のゴール 既存モデルへスペックの追加 バリデーション、クラスメソッド、インスタンスメソッドのテスト記述 テストのリファクタリング モデル…

Rails - 親子関係にあるモデルのルーティング設定

こちらが詳しい Ruby on Railsで親子関係にあるモデルのルーティング設定 - 戯言メイテル

フリーランスエンジニアになる時に読むべき記事、書籍一覧

別になる気はないんだけど... 最近フリーランスエンジニアになろう!という発信を良く耳にするので調査しました。 フリーランスエンジニアの単価を決める qiita.com 要約 フリーランスエンジニアとして、スキルセットと年収およびキャリア構築の目指すべき方…

オブジェクト指向に関する入門記事

あとで読むqiita.comqiita.com

Git - 変更を取り消す

Git

参照 Git - git-clean Documentation ファイル変更を取り消す 編集や削除したファイルを元に戻す すでにGitが管理をしているファイルに対する変更や削除を取り消したい場合 git checkout -- . 追加したファイルの取り消し まだGitで管理しておらず、Untracke…

ゼロから学ぶAWSの勉強方法

手を動かしながら2週間で学ぶ AWS 基本から応用まで | Udemy

Rails - Modelのスコープ(scope)とは

スコープとは何か? Railsガイドの「Active Record クエリインターフェイス」に「14 スコープ」がズバリ railsguides.jp もっと具体的に、実務での使い方を知りたい qiita.com なお、記事内で出てくるArel gemは、公式にRails本体にMergeされるのだそう。そ…

エンジニアのキャリアで参考になる書籍、ブログ、記事、映画やドラマの一覧

キャリアに関する記事やブログで、参考になったものをまとめています。 エンジニアのキャリアの方向性(クックパッド 舘野さん) techlife.cookpad.com ポイント 記事の中で、エンジニアのキャリアを大きく3つに分類している。 1.経営者(CTOなど)・技術マネー…

bundle install時に"An error occurred while installing mysql2 (0.4.9), and Bundler cannot continue."でコケる場合の対処法

エラー発生手順 MySQLをインストール brew install mysql@5.7 brew tap homebrew/services brew services start mysql@5.7 アプリケーションのディレクトリでbundle install git clone <クローン対象のURL> cd <対象ディレクトリ> bundle install 発生したエ…

Git、Github - リモートブランチをローカルに取得する

Git

Githubのmaster以外のブランチを、ローカルに持ってきたい場合 git checkout -b <ローカルのブランチ名> origin/<リモートのブランチ名>例えば、 git checkout -b 01-untested origin/01-untested※書籍「Everyday Rails - RSpecによるRailsテスト入門」の第1…

Rails - 3000以外の別ポートで起動する

pオプションを付ける rails s -p <ポート番号>具体例 rails s -p 3001 利用例 複数バージョン立ち上げ時に、すでにポート3000使われてるエラーを回避。 Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE)

Solidus - defaultのviewからカスタマイズする方法

参照 solidus Developers Guide - Override views https://guides.solidus.io/developers/views/override-views.html

Rails - フレンドリーフォワーディング

はじめに 詳細は、Rails tutorial 第10章の「フレンドリーフォワーディング」を参照。 https://railstutorial.jp/chapters/updating_and_deleting_users?version=5.1#sec-friendly_forwardingTutorialですぐに理解できなかったので復習用としてまとめてみま…

Rails - Viewにおいて、renderにコレクションを渡して可読性を高める

リファクタリング前 <ul class="users"> <% @users.each do |user| %> <li> <%= gravatar_for user, size: 50 %> <%= link_to user.name, user %> </li> <% end %> </ul> リファクタリング後 renderにコレクションを渡した場合、Railsはコレクションを列挙してパーシャルで出力する <ul class="users"> <%= rend</ul>…

Rails - ルーティング一覧を表示する3つの方法

【方法1】コマンドライン上で確認する方法 rails routes 表示対象を絞り込み、特定のリソースやコントローラのルーティングを表示したい場合は、「| grep <検索キーワード>」を後ろに付ける rails routes | grep users 【方法2】ブラウザ上で確認する方法 こ…

人生をモチベートする作品たち

ブレイブ 勇敢なる者「Mr.トルネード~気象学で世界を救った男~」 とにかく私の人生は面白い 安定とは無縁であった 書籍 - Mr.トルネード 藤田哲也 世界の空を救った男 https://www.amazon.co.jp/dp/B071GN6NLM/ref=dp-kindle-redirect?_encoding=UTF8&btk…

Rails - 認可とは

認可とは Rails tutorialより 認可 (authorization) はそのユーザーが実行可能な操作を管理すること 機能と実装の方針 未ログインの場合に、ログインが必要なページをリクエストすると、ログインページへ遷移 ログイン済みの場合に、許可されていないページ…

Rails - データ作成時と更新時に、フォームからのリクエストでPOSTとPATCHをどうやって使い分けているのか?

Railsでフォームを記述すると、 データの新規作成時には、POST データの更新時には、PATCH とHTTPメソッドを使い分けていますが、これはどう判断しているのか? 結論 <%= form_for(@user) do |f| %>上記のように渡されたインスタンス(例では@user)がデータベ…

aタグ - リンク先を別タブで開きたい

実装方法 aタグに target属性を付け、値を_blankとする rel属性を付け、rel="noopener" <a href="#" target="_blank" rel="noopener">テキスト</a> rel="noopener"を付ける理由 セキュリティ的な理由から付ける。 詳細は下記リンク先をを参照してください。リンクを作る時の target="_blank" の危険性 - 隙あ…

SSHでGithubやBitbucketに接続する

SSH

Github Connecting to GitHub with SSH https://help.github.com/articles/connecting-to-github-with-ssh/

Rails - formからpostする時にurlを指定する

はじめに ルーティングをresourcesではなく、直接指定したい場合の方法。 方法 urlを直接指定する場合 route.rb post '/signup', to: 'users#create' form form_forの引数にurlオプションを付ける <%= form_for(@user, url: signup_path) do |f| %> <%= f.la…

Rails - セキュアなパスワードの追加

1.modelにhas_secure_passwordを追加 class User < ApplicationRecord . . has_secure_password end 2.modelにpassword_digestという属性を追加 マイグレーションファイルの作成 rails g migration add_password_digest_to_users password_digest:string マ…

Rails - modelのvalidatation

参考 Active Record の基礎 | Rails ガイド Active Record バリデーション | Rails ガイド presence / 存在性 validates :email, presence: true length / 長さ validates :name, length: { minimum: 5 } validates :email, length: { maximum: 255 } valida…

Rails - データベースにカラムを追加する

マイグレーションの作成 rails g migration add_<column_name>_to_<table name> <column name>:<型>例えば、 rails g migration add_favorite_subject_to_users favorite_subject:string マイグレーションの定義 class AddFavoriteSubjectToUsers < ActiveRecord::Migration[5.0] def change add_co</column></table></column_name>…

Rails - データベースのカラムにindexを追加する

マイグレーションの作成 rails generate migration add_index_to_<table name>_<column name>例えば、 rails generate migration add_index_to_users_email マイグレーションの定義 一意制約を付与したい場合はuniqueオプションを追加する class AddIndexToUsersEmail < ActiveRecord:</column></table>…