Rails

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向けの静的解析ツールです。 コードがコ…

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について書き留めておこうと思います!! エラー内容 うまく保存ができなかった際にエラーメッセージを出力させたかったのですが、 なぜか表示されないという現象で詰まっておりま…

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についての基本的な導入方法、使い方について…

settingslogicのコードリーディング

今日はsettingslogicのコードリーディングに混ぜていただきました!! github.com こちらの記事も参考にさせていただきました。 qiita.com blog.freedom-man.com キモとなるコードはsettingslogic.rbというファイル1ページだけなものの、メタプロが結構出て…

bunle install するときの --path vendor/bundle オプション

複数人で開発する際bundle install する時には、--path vendor/bundle オプションを付けてあげる必要があるのですね。。。!! コミュニティ開発しているプロジェクトで、自分がgemを追加し、なにもオプション付けづにbunle installをしてしまいましたw なの…

またmysqlが入らないエラーが出た

以前OSをアップデートした時にも出現した、mysqlが入らないエラーが再度出現しました。 以下はエラー文です。 ~/p/r/banken_admin_blog (master|✚1…) [1] $ bundle install Your Gemfile lists the gem kaminari (>= 0) more than once. You should probably…

fish で rails s ができなかったのを解決した

fish を入れていただき、rals sをしようとしたら、 "Rails is not currently installed on this system." と言われてしまいました。。。 bash に切り替えればいつも通りrails s できるのですが、fish だとできません。 gyazo.com なんで?!と思ってとりあえ…

banken のコードリーディング

明日はカルパスさんの鎌倉のお家にてTamarbの方々とコードリーディングを行う予定なので、少しでも話についていけるように予習しておこうと思います。 まだ確定ではないのですが、bankenというgemと、railsのソースコードを読むことになりそうです! 以下が…

オブジェクト指向実践ガイド 第6章〜継承によって振る舞いを変える〜

本日はTamarbの「オブジェクト指向実践ガイド 第6章〜継承によって振る舞いを変える〜」 の輪読会がありました! この本は自分には難しく、説明文の中にJavaの概念も所々出てきたりし、自分で読んだだけでは理解ができておりませんでした。 しかし皆様の具…

RESTについて

本日「よちよち.rb」というコミュニティのRESTアーキテクチャについての勉強会がありました。 しかし!!自分はバイト先のシフトのため参加出来ず、すごく残念なので一人勉強会しようと思います!! RESTとは Representational State Transferの略です。 直…

共同開発をしてみる!!

先日Tamarbで作ってみたいという話になった、vimrcを愛でるSNSを共同開発してみる事となりました!! マッチングアプリの予定だったのですが、vimユーザーの男女比が 148:2 らしく、成り立たないという事で変更になりました。 自分にとっては初の共同開発な…

concernsディレクトリについて[Rails]

コードリーディングをしていると、今まで自分でrailsを使うときには使ったことの無い、concernsというディレクトリがcontrollers配下やmodels配下にあって、その中のファイルにメソッドを定義していっている事が多々ありました。 そこで今回、concernsディレ…

コードを読んでみる(Railsのlink_toビューヘルパーメソッド)

link_toメソッドがどのように定義されているのか気になったので、ソースコードを読んでみることに挑戦しました! ヘルパーメソッドのコードは他の部分に比ベれば、初心者にも理解がしやすい気がしました。 どのように定義元を探すか 自分の場合、githubのか…

link_toメソッドまとめ

link_toメソッドとは? link_toメソッドはリンクを生成してくれるRailsのヘルパーメソッドです。HTMLのaタグに変換されます。 基本の形 link_toメソッドの第一引数には表示させたい文字、第二引数には飛びたいページのパスを書きます。 <%= link_to "表示さ…