2019-02-01から1ヶ月間の記事一覧

いつの間にかAWSが課金されていた

今まで、無料枠の範囲でAWSを利用しているつもりだったのですが、いつの間にか課金が発生しておりました。。。 以下はその明細です。 gyazo.com 日本円にして数百円程度なので、そこまで大きな問題ではないのですが、どのタイミングでなぜ課金が発生したのか…

Chart.jsというグラフを描画してくれるライブラリ

chart.jsというグラフを表示してくれるライブラリを使用したのですが、とっても簡単に実装できました! その手順をメモしておきます。 chart.jsとは グラフを簡単に書くことができる、javascriptのライブラリです。 折れ線グラフ・棒グラフ・円グラフ・レー…

group_byメソッドで同じ値をまとめる

TaskモデルとLabelモデルが多対多のアソシエーションが組まれており、 あるユーザーが使っているLabelの全種類&各Labelの使用回数を取り出したい事例がありました。 いきなり取り出そうとすると「どのメソッドを使えばいいんだ?!」と混乱したので、解決す…

AWSのsecret_access_key管理についての反省

現在作成中のアプリでActiveStorageを使用し、その保存先をAWSのS3に設定しています。 S3を使用できるIAMuserを作成し、そのsecret_access_keyとaccess_keyをcredential.ymlに保存していたのですが、いつの間にかcredential.ymlが消えてしまっておりました。…

ActiveStorageにアップロードしたファイルのダウンロード

本日、ActiveStorageにアップロードしたファイルのダウンロード機能を実装しました。 ダウンロード機能を実装するのは初だったので結構手間取りましたw その方法についてメモしておきます!! ①ActiveStorageの設定 以下のコマンドで、ActiveStorageに必要な…

GinzaRailsに行った

本日、初GinzaRailsに参加してきました!! 内容としては、 ・shinkuFencerさん「テストコード未経験者がRailsでそれなりにrspecがかけるようになるまでの話」 ・cawa さん「Rails 6 からRailsをわかっていく」 ・onkさん発表 の3つの講演がありました!! …

enumの値を日本語化する

本日、enumの値を英語で設定し、ビューでの表示は日本語にするという設定を行いました。 わからないことが多く時間がかかったため、その手順をメモしておきます!! ①enumの設定 以下のように、英語表記でenumの値を設定します。 class Task < ApplicationRe…

期限が過ぎたレコードを取得

期限が過ぎてしまったレコードを取得したいと思い、whereメソッドで実装しようとしました。 しかし、「引数はどう書けばいいんだっけ。。。」と手間取ってしまったので、そのメモです! やりたかったこと deadlineというDate型のカラムから、今日の日付より…

RSpecでアソシエーションしたデータの作成で手間取った

タイトルの通りなのですが、RSpecでテストを書く際、アソシエーションしたテストデータの作成にだいぶ苦戦しましたw なんとかうまく定義することが出来たので、その方法についてメモしておこうと思います!! FactoryGirlをインストール はじめ、factoryを使…

gonというgem

先ほど、Railsの値をjavascriptに渡せるようにしてくれるgemである、gonというものを使用してみました!! Railsの値をjavascriptに渡す方法は他にもあると思いますが、個人的にgonを使ったやり方がとても簡単だったのでいい感じでした!! そのやり方をメモ…

RuboCop

先日、前から気になっていた、RuboCopを導入してみました! RuboCopはどんなものか、どんなメリットがあるのか、基本的な使い方についてよく分かっていなかったのでまとめてみました! RuboCopとは RuboCopとは、Ruby向けの静的解析ツールです。 コードがコ…

間違えてgit reset --hard してしまったのを取り消す

git reset --hard HEAD~2 と実行したが、実行した後戻し過ぎたと気づきました。。。 ~/p/r/todo_management_app (status|✔) [127] $ git reset --hard HEAD~2HEAD is now at e718fea remove conflicts 調べたら、git reflog コマンドでやり直せるとの事なの…

vendor/assets配下のstylesheetsとjavascriptsが認識されない

エラー内容 vendor/asssets/stylesheets配下にcssファイル、vendor/assets/javascripts配下にjsファイルを追加し、 それそれ以下のように読み込ませる指定をしたのですが、読み込んでくれないエラーに遭遇しました。 app/assets/stylesheets/application.css…

includesしたのにN+1問題が回避できない

userモデルとtaskモデルに関して、1対多のアソシエーションを組んでおり、 以下のようにビューでeach構文の中でアソシエーションを使ってuserのtasksの数を表示させておりました。 app/views/admin/users/index.html.slim div.fontsize_midium.margintop_bi…

gemを使わず管理画面を実装

gemを使わずにadminユーザーのみアクセスできる管理画面の実装をしたので、やり方についてメモしておきます! ①adminネームスペース用のルーティングを定義 adminネームスペース用のルーティングを定義します。 以下のように namespace :admin do ~ end の中…

gemを使わずログイン・ログアウト機能実装

gemを使わないログイン機能の実装方法について忘れてしまいがちなので、やり方をメモしておきます。 userモデルファイルに、has_secure_password を追記します。 userモデルファイルに、has_secure_password を追記します。 これによって、 ①ハッシュ化した…

引数がない時にエラーにならないようにする

タイトルで検索できるようにするため、以下のようにindexアクションの中でwhereメソッドを使って検索機能を実装しておりました。 app/controllers/tasks_controller.rb def index @tasks = Task.all.includes(:user).order("created_at DESC").where('title …

テストデータを大量に作ってベンチマークテストをする

テストデータでtitleカラムにindexを貼った時・貼ってない時の検索スピードを比較したいと思い、以下のようなコードを書いてみました。 spec/models/task_spec.rb require 'rails_helper'require 'benchmark'RSpec.describe Task, type: :model do describe …

一度addしてしまったディレクトリをgitignoreする

昨日、vendor/bundle配下にインストールされたgemをgitの追跡対象に入れてしまったままプルリクを出してしまい、ファイルの変更履歴が膨大な量になって迷惑をかけてしまいました。 そこで、後から.gitignoreにvendor/bundleを含めようとしたのですが、手間取…

リファクタリングの目的・パターン・思考 joker1007さん講演

以下の勉強会に参加してきました!! repro-tech.connpass.com その内容についてのメモです。 長く続いたソフトウェアは複雑化する 特に顧客がつくと簡単に止められなくなる 機能や動きを維持しつつ開発しなくてはならない 開発速度が遅くなる要因 ある機能…

feature specで順番の並び替えが正いかテスト

feature specで順番の並び替えが正いかテスト feature specでテストでTaskの作成日時の順番で並び替えができているかをテストする、という課題があったのですが、どうすれば良いか分からず詰まっておりました。 ググってもあまりでてこない。。。 これであっ…

errorメッセージが表示されなくて詰まった

今日もいくつもエラーや分からないことで詰まっていたのですが、そのうちの1について書き留めておこうと思います!! エラー内容 うまく保存ができなかった際にエラーメッセージを出力させたかったのですが、 なぜか表示されないという現象で詰まっておりま…

体調管理について(ただの日記)

今日は仕事が終わってからasakusarbに行く予定だったのですが、お休みしてしまいました。。。 理由は体調が優れなかったからです。。。 先輩から講演で話す内容を事前に聞けるチャンスでしたし、それ以外にもheavens_doorのお話を聞けるかもしれないチャンス…

CircleCIの設定で詰まった

今日は新しく覚えることがたくさん出てきましたw その中でも、CircleCIの設定でかなりつまずきました。。。 なので忘れないように書き残しておこうと思います!! どんなエラーで詰まっていたか 以下のエラーが出ており、ずっとCircleCIが落ちていました。 …

erb2slimというツール

slimでビューを書くにあたって、erb2slimというerbからslimに変換してくれるツールをしようしています! 以下はそのリンクです。 erb2slim.com コマンドでslimに変換してくれるgemも入れているのですが、before&afterを確認して自分の手でslimを書いていきた…

RSpecの練習

テストコードをあまり練習せず過ごしてきてしまったので、今回きちんと基礎から練習してみることにしました!! EverydayRails-RSpecによるRailsテスト入門を購入&伊藤さんのQiitaの記事を参照しながら、自分で書いて試してみました。 leanpub.com qiita.co…

テンプレートエンジンSlim

今までRailsでビューをかくときは、ほとんどerbを使用しておりました。 数回だけhamlに挑戦したことはあるものの、あまり好きになれずerbに戻っておりました。 しかし今回、slimに挑戦することとなったので、slimについての基本的な導入方法、使い方について…