fv17の日記 - Coding Every Day

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

Railsの設計関連の記事まとめ

Railsの設計を学ぶ。 Railsに詳しい方々にコレ読みなさいと教えていただいたリンク集、と自分の学んだことメモ。 Ruby on Railsの正体と向き合い方 リンク https://speakerdeck.com/yasaichi/what-is-ruby-on-rails-and-how-to-deal-with-it ポイント Rails…

勉強方法を改善する

自分用メモ。 効率的に生きていくのに必要な知識、技術を身につけたい。 数学 これまでの間違った勉強法 問題をまず5分前後解いてみる 分からなければ解答を見て、再度解き直して覚える 上記における問題 時間がかかり、学べる問題数が少ない 改良後の勉強法…

Graphqlに入門するためのリンク集

API

公式Doc Graphqlとは何か? まず初めに読むべき公式DocとRubyによる実装方法。must readGraphQL 本家 https://graphql.org/ GraphQL Ruby https://graphql-ruby.org/ Github Graphql パラメータ、戻り値、エラーハンドリング等々の主要な参考例 実際にGithub…

postgresの起動と接続

PostgreSQL 起動 cd /usr/local/var postgres -D ./postgres/ 終了 Ctrl + c psqlコマンド データベース一覧 \l or psql -l データベースへ接続 psql -d <database name> psql -d postgres データベースから切断 \q or exit テーブル一覧 \dt テーブル構造 \d <table name> \d users</table></database>

例外処理を学ぶ

@jnchitoさんのまとめ記事 Railsアプリケーションにおけるエラー処理(例外設計)の考え方 - Qiita@jnchiitoさんが学んだ、より詳細な記事 .NETの例外処理 Part.1 – とあるコンサルタントのつぶやき .NETの例外処理 Part.2 – とあるコンサルタントのつぶやき…

Rails - シングルテーブル継承(STI)とは

STIとは? Active Record の関連付け (アソシエーション) - Rails ガイド STIの詳細1(実例やメリットとデメリット等) Single-table inheritance vs. polymorphic associations in Rails: find what works for you STIの詳細2(歴史、実例、代替方法、デメリッ…

PostmanでRails APIをテストする方法

下記に詳しいmedium.com

EC2にSSHで接続する

AWS

# 基本 ssh <EC2のユーザー名>@<IPアドレス> -i "/Users/<PCのユーザー名>/.ssh/<key名称>" # 具体例 ssh ec2-user@11.222.333.444 -i "/Users/fv17/.ssh/key.pem"IPアドレスは、EC2の「IPv4 パブリック IP」</key名称></pcのユーザー名></ipアドレス></ec2のユーザー名>

【Ruby】文字列において、同一文字が連続しているかどうかを判定する

やりたいこと 文字列において、同一文字が連続しているかを判定する 例えば、 '123abbbc' は 'b' が3文字連続していることを判定したい 利用場面 パスワードのvalid判定などにおいて、「同一文字が連続していないこと」をチェックしたい場合など やり方 正規…

Rails における内部結合、外部結合

ズバリのQiita記事が沢山あるのでリンク貼り付けRails における内部結合、外部結合まとめ - Qiita

Rails - 複数レコードの一括登録でパフォーマンスを向上させる

JavaでいうaddBatch、executeBatchで一括登録する方法をRailsでもできないかを探した。 activerecord-import gemを使うとRailsでも同様のことが可能とのこと。 利用方法、パフォーマンス比較等 Qiita qiita.com 公式Github github.com

RubyMine - ローカルDBを閲覧する

データベースの中身を確認するときは、rails consoleでちまちま確認するより直接DBを見たい。RailsチュートリアルではDB Browser for SQLiteでデータ閲覧しますが、RubyMineだとSQLite以外のデータベースも対応しています。 やり方 RubyMineからローカルのSQ…

Bootstrap4でFont Awesomeを使う(3のGlyphiconsが使えなくなりました)

Bootstrap4では、Bootstrap3で使えたGlyphiconsが使えなくなり有料化されました。代替案の一つが、Font Awesomeへの移行です。その方法を書きます 公式からリンクをGET 下記リンクを踏むと「Start Using Free」と出てくるのでクリックすると、リンクが出てき…

Rails5でのlocale設定(日本語化、国際化対応)

Rails 5での設定方法 config/initializers/locale.rb I18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s] I18n.config.available_locales = :ja I18n.default_locale = :jarails newした時点でconfig/localesにen.ymlの…

RubyでBuilderパターン

RubyでBuilderパターンを学ぶ良記事 medium.com Javaだが、Builderパターンもいくつかあるよという解説 qiita.com

Ruby + Capybaraでクローラーを作成する

下記の記事の後半が該当qiita.com

pickadate.jsをRailsを使うと「Rack::QueryParser::ParameterTypeError (expected Hash (got String) for param `xxx'):」でエラーとなる

pickadate.jsをRailsで実装したところ、同一パラメータを複数設定してサーバー側に送信しており、400 Bad Request エラーでコケた。 エラー Rack::QueryParser::ParameterTypeError (expected Hash (got String) for param `check_in'): 回避策 github.com次…

可読性の高いHTMLとCSSの書き方

Qiitaの記事qiita.com

Bootstrap - 画面サイズ毎に異なるCSSをあてる

BootstarapのResponsive breakpointsという機能を使うhttps://cccabinet.jpn.org/bootstrap4/layout/overview#responsive-breakpoints

Rails、Ruby - case文を正規表現で分岐させた後にマッチ部分を使う

表題の件をやろうとすると冗長なコードしか書けなかった。 先人がいたため参考にするも、今回は可読性を考慮して冗長なままにする。qiita.com

Railsでtypeahead.jsを使ってオートコンプリート機能を実装する

Railsでtypeahead.jsを使ったオートコンプリート機能(入力補完機能)の実装手順 https://www.virment.com/rails-typeahead-autocomplete/ typeahead.jsのGithub https://github.com/twitter/typeahead.js/ 実装例 http://twitter.github.io/typeahead.js/ex…

Ruby - なぜmapとかcollectとか、エイリアスが沢山あるのか?

ズバリの記事を発見map と collect、reduce と inject ―― 名前の違いに見る発想の違いRubyで「なぜこうなっているのか?」は多くの場合、Lisp、SmallTalk、あとPerl起源が多い気がする。 逆にJavaは世に出た時期がほぼ同じで影響を受けてないから、全然違う…

Ruby、Railsで日付を扱う

下記参照qiita.com

Git - 【stashコマンド】変更分を一時避難し、コミットせずに別ブランチへ移動する

Git

作業中にコミットせずに別ブランチへ移動しなければならなくなった場合の操作方法。 git stashで一時避難 git stashで作業内容を一時保存し、別ブランチへ移動することが可能になる。 git stashこの時、下記2つのファイルが一時避難され、変更前の状態に戻…

Git - リモートの最新情報をローカルに反映する(fetchとpull)

Git

リモート(GIthubなど)から最新情報を取得し、それをローカルに反映させるには2つの方法がある。一つがfetchでもう一つがpull。 fetch fetchはリモートリポジトリからローカルリポジトリに最新情報を取得する。 この時、ワークツリー(ローカルで実装している…

AWSで無料枠利用なのに毎月4$弱課金されていた件

AWS

Elastic IPで毎月4$課金されてた 何も使ってないのに課金された!と叫んでいたら、これを思い出しました。 togetter.com明細にここ数ヶ月、毎月300~400円前後 Amazon Web Serviceの記載があったが、遂に対応。 先人たちに解消方法を学ぶ 下記記事で先人たち…

【オブジェクト指向】単一責任の原則について理解を深める

単一責任の原則(SRP)についての理解を深めてくれる良記事。 SRPに違反しているコードを徐々に改良していく丁寧な解説で非常に分かりやすい。medium.com 記事を紹介する背景 Sandi Metz氏の「オブジェクト指向設計実践ガイド」を数週読了。 しかし、SOLID原則…

Rails - content_tagの使い方

content_tagメモ before <div class="alert alert-<%= message_type %>"><%= message %></div> after <%= content_tag(:div, message, class: "alert alert-#{message_type}") %>

Rails - byebug gemを導入してdebuggerでデバッグする

debuggerの使い方メモ (RubyMineでいいじゃん感) 導入と使い方 byebug gemを導入 debuggerをソースに組み込む Railsを実行するとコマンドラインで該当箇所で止まって色々調査できる Ctrl-Dで抜ける 代表的なコマンド コマンド 説明 eval 変数の値、メソッド…

Rails - テーブルにカラムを追加する

rails g migration add_<カラム名>_to_<テーブル名> <カラム名>:<カラムの型>具体例 rails g migration add_password_digest_to_users password_digest:string