【rails】ほとんど見当たらないdelayed_jobのrspecまとめ

ことの始まり 前回の記事でdelayed_jobを導入してみた。 yasagori-programing.hatenablog.jp 導入したのはいいものの、rspecの記事がほとんど見つからない… これは非常に困ったので、そのやり方をまとめておく。 テストの考え方 まずは考え方を整理しておく…

【rails】delayed_jobを使って非同期化をする方法

ことの始まり 現在運用しているサービスは、メール送信に失敗した際Bugsnagで通知を飛ばすようにしていた。 通知を受けたら手動でメールの再送を行っていたが、利用者数が増えるにつれてエラーもかなりの数発生するようになってきて、手動で対応するのが辛く…

【Rails】rspecでmodelのconcernを単体テストする方法

ことの始まり 結構大きめの複数modelで使うメソッドを作る必要があったから、concernにまとめちゃおうと思ったものの、メソッドの単体テストどうしよう… ということで、調べたら一応できた。 最近rspec周りの記事が多いなぁ modelのconcern作成 例えばuser m…

【Rails】取得したlogデータを元にデバッグをする方法

前回のメモ 前回の記事で、logファイルから該当するデータの抽出方法をまとめた。 正確には該当する行の抽出方法だけども。 抽出したデータを元にrailでデバッグする方法をメモしておく。 yasagori-programing.hatenablog.jp ファイルの読み込み grepを使っ…

【Linux】該当文字列を含むファイルを探すgrepコマンド

ことの始まり サーバー上に残っているLOGから該当の処理を探す必要が出た。 普段サーバーの中からデータを漁ることなんてしなかったのでめちゃくちゃ手間取ったので、忘れないようにメモを残しておく。 grepコマンド grepの基本的な使い方はコレ。 grep 正規…

【rails】rspecでcontrollerのconcern単体テストをやる方法

ことの始まり 巨大なcontrollerを分割した際、共通で使うメソッドはconcernにまとめておこうと考え。 controllerの単体テストでわざわざconcernの内容も一緒にやるのは馬鹿らしいので、concernの単体テストをやりたくなったが、ちょっと困ったので色々調べた…

【ruby】rubyでよく使うメソッドまとめ その3

よく使うメソッド 実業務でもたまに使うけど、どっちかっていうとAtCorderの問題でよく使うやつをまとめておく。 今までのまとめはこちら yasagori-programing.hatenablog.jp 文字の出現回数を数えたい countメソッド 文字列の中から特定の文字をの出現回数…

【ruby】rubyで2進数を扱う

AtCorer Beginner Contest 147 C問題 毎度おなじみAtCorder Beginner Contest C問題でつまづいた。 解き方含めて学んだことをメモしておく。 問題のポイント 今回の問題では、正直者を1, 嘘つきを0で表記していく。 例えば3人が順に [正直者, 嘘つき, 正直者…

【rails】widthではなくデバイス判定の時のRspec

browser gem ボタンの表示・非表示の制御をcssのwidthでやることも可能だが、gemを使って判別させることも可能。 そこで使うのがbrowserというgem。 gem 'browser' コレでPCかスマホかの判別はもちろん、使用しているブラウザが何かも判別できる。 # スマホ…

【rails】rspecでcallbackにハメられたお話

callbackとは DBにデータを保存する前やバリデーションをかける前に処理を行うこと。 基本的にmodelの中に書かれる。 callbackにはcontrollerで持たせる必要はないが、保存処理などを行う前に必要な処理をまとめて書いておく。 実際の例 まずはOrderModelを…

【rails】rspecで例外処理をテストする方法

例外処理とは 例外処理は通常のフローでエラーが発生した時にどうするか、ということ。 通常のsaveとかでは以下のようにif節でsaveできない時を指定できる。 def index @orders = Order.all end def new @order = Order.new end def create if @order.save r…

【ruby】数学問題でよく使うメソッドその1

AtCorderの問題を解いていると数学問題がよく出てくる。そこで使うメソッド類をまとめておく。 primeモジュール 素数を扱う時に使うのがprimeモジュール。コードの最上段にこれを書いておく。 require 'prime' 素数 # 小さい方からn個の素数 Prime.take(5) =…

【ruby】第2回全国プログラミング王決定戦予選で出てきた謎問題

全国プログラミング王決定戦予選とは ヤサゴリがいつもやってるAtCorderで行われるコンテストの1つ。 産経主催のコンテストで通常のAtCorderと少しテイストが異なる。 初チャレンジで見事どハマりしたから、忘れないようにメモ。

【ruby】rubyでよく使うメソッドまとめ その2

その1から読みたい人はこちら yasagori-programing.hatenablog.jp

【rails】railsでよく使うメソッドまとめ その1

勉強する中で出てきたrailsメソッドを忘れないようにメモ。 最終的にはtopページの検索から楽に調べられるようにしたい。。。

【ruby】AtCorderで死ぬほどハマった問題で使ったメソッド

今回ハマったのはこの問題。 問題解きながら使ったメソッドを忘れないようにメモしとく。

【ruby】rubyでよく使うメソッドまとめ その1

勉強する中でわからなくてググったメソッドをガンガンまとめておく。

【rails】複数のjsonデータを返す方法

発生経緯 railsアプリを作る時、Vue.jsを使うと基本的にrailsのデータはAPIで返すことになる。 ということは最後の出力をjson形式で返すことになるわけだが、ここでかなりつまづいたので忘れないようにメモしておく。 単体jsonデータの場合 class QuestionsC…

【heroku】railsをデプロイした時に出たエラー

発生経緯 Vueの勉強がてらローカルで作っていたrailsアプリをherokuにデプロイしようとコマンドを叩いた。 $ git push heroku origin すると見たことのないエラーが発生 remote: -----> Detecting rake tasks remote: remote: ! remote: ! Could not detect …

【rails】PostgreSQLを使った環境構築

PostgreSQL Accountの作成 仕事でPostgreSQLを使っていたので、Accountを作るところから。 $ sudo -u postgres psql PASSWORD= <PCのパスワード> postgres=# create role <username> with createdb login password '<password>'; # usernameとpasswordはあとで使う postgres=# \q $ rails new <appname> -d</appname></password></username></pcのパスワード>…

【Vue.js】クラスのデータバインディング

クラスのデータバインディング クラスのデータバインディングの基本の書き方はこうなる。 例えば文字を大きくする場合 JavaScript var vm = new Vue({ el: '#vm', data: { isLarge: true } }) HTML <div id="vm"> <p> Hello <span v-bind:class="{large: isLarge">Vue.js!</span> </p> </div> CSS .large { font-size: 36px; } isLar…

【Vue.js】監視プロパティとは?

監視プロパティ 特定のデータないし算出プロパティの状態を監視することで、変化時に登録しておいた処理を自動で実行できるプロパティのこと。 ウォッチャとも呼ばれる。 使い方をコードで確認する。 HTML <div id="vm"> <p> <input type="text" v-model:value="message"> </p> <p>{{ message }}</p> <pre>{{ $data }}</pre> </div> Javascript var vm…

【Vue.js】算出プロパティについて

算出プロパティとは 関数によって算出したデータを返せる。 プロパティ名はcomputedとなる。 JS var vm = new Vue({ el: '#vm', data: { comment: "Hello Vue.js!" }, // 算出プロパティ: ここでは文字の反転をさせる。 computed: { reversedComment: functi…

【Vue.js】バインディング式とは

バインディング式 マスタッシュタグ内部のテキストのこと。 いくつかの種類がある。 JavaScript式 単一式であればマスタッシュタグ内にJSのように書くことができる。 JS var vm = new Vue({ el: '#vm', data: { message: 'Hello Vue.js!', num: 100, ok: tru…

【Vue.js】テンプレート制御ディレクティブの色々

テンプレート制御ディレクティブ v-once 初回だけテキストバインディングを行いたい時に使う。 例えばボタンを押すと文字列が反転するfunctionを書いてみる。 HTMLコードはこう <div id="vm"> <p>{{ message }}</p> <button v-on:click="clickButton">Click!</button> </div> <script src="https://cdn.jsdelivr.net/npm/vue"></script> 文字列を反転させたいのでsplitで分けてreverseで反転…

【Vue.js】toDoリストのアプリを作ってみる

ベースのHTMLの作成 まずは表示させる目標物の確認。 今回はこんな形をゴールにする。 インプットで入力した文字がAddボタンを押されることで下のリストに表示されるようになっている。 それではHTMLを作成する。 <div id="app"> <h2>toDo List</h2> <form> <input type="text"> <button> Add </button> </form> <ul> <li> <input type="checkbox"> <span>Vue.jsの勉強</span> <button>Delete</button></li></ul></div>…

【Vue.js】ディレクティブとコンポーネントを学びながらJSの復習も

ディレクティブの例の続き 昨日に引き続きディレクティブの具体例をまとめていく。 この2つはボリュームが多かったので分けておいた。 v-on ボタンなどを使ってイベントを作成する。 例えば時間を表示させてみる。 まずはHTMLファイルを用意。 <div id="app"> <button v-on:click="onclick"> 今何時? </button> <p>{</p></div>…

【Vue.js】ディレクティブって何なのか

ディレクティブとは Vue.jsに指示を出す仕組みのこと。 v-で始まる属性の総称。 ディレクティブの例 どんなのがあるのか、まとめてみる。 v-bind データバインディングを行うときに使う。 まずはVue.jsファイルを用意。 var vm = new Vue({ el: '#vm', data:…

【Vue.jp】テンプレートとオプション

テンプレートとは テンプレートはHTMLベースのテンプレート構文を使用した、描画部分の記述。 ルートのテンプレート テンプレートの中で最上位に位置するもの。 HTMLのbodyタグ内であればどこでも作れる。 <div id="vm"> // これがルートのテンプレート </div> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> オプション Vue.…

【Vue.js】Vue.jsを使ってHello Vue.js!を表示させてみる。

Vue.jsのCDN Vue.jsの検索バーで「インストール」を検索する。 インストールの画面中盤にCDNの項目があるので、こちらのコードをコピー。 なお、貼り付け先はHTMLファイルのここ <body> // コードを書いていく <script src="https://cdn.jsdelivr.net/npm/vue"></script> </body> 現在の本番環境でのバージョンは2.6.10となっている…