プログラミングと旅と映画の日々

普段はスマホ決済サービスの会社でバッグエンドを担当しているエンジニアです。プログラミングと趣味の映画、株、時々うどんに関してブログを書いていこうと思います。海外ドラマ、クロスバイクも好きです。

Ruby on Rails

【Ruby on Rails】初心者向け!Ruby&Ruby on railsおすすめ学習フロー【Ruby】

海外ドラマの視聴記録サービス mitanoを開発・リリースするにあたり、 ruby&ruby on rails を開発言語に採用しました。 www.mitano.jp そのさいの学習フローとして、自分なりに色々模索した結果 以下のようなフローでrails開発に取り組み それなりにやり易か…

海外ドラマの感想を共有するSNS mitanoをリリースして1ヶ月が経ちました

こんにちは 今年の5月末あたりに 海外ドラマの感想を共有するSNS mitanoというWebサービスをリリースしました。 www.mitano.jp 1ヶ月と少し経過したのでブログに現在の状況をまとめてみようかと思います。 mitanoとはどんなサービスか 「エピソード単位での…

【Ruby on Rails5】 heroku で PostgreSQL のエラーが発生(UndefinedFunction: ERROR: operator does not exist)

現在、localの開発環境のDBにはsqlite本番環境のDBはpostgreSQLを採用しています。 localだと問題なく動いていたものを本番にdeployして動作確認を行ってみたところ以下の500エラーが発生 UndefinedFunction: ERROR: operator does not exist: bigint = char…

【Ruby on Rails5】railsでデバイスごとに処理を分けるのに便利なgem rack-user_agent

海外ドラマの感想を共有するSNS mitanoというサービスを運営しております。 www.mitano.jp PCの場合にはこの画像、スマホの場合にはこの画像を表示ということがしたい。mitanoのドラマのimage情報はアマゾンのイメージサーバーのURLをDBに以下のように保持し…

【Ruby on Rails5】一覧表示するデータを任意の順で並び替える

modelに対してdefault scopeを定義すればOK 以下は作成時間が新しい順に設定 class Micropost < ApplicationRecord default_scope -> { order(created_at: :desc) } end

【Ruby on Rails5】railsでページネーションを導入する

以下のように1ページに100ユーザーも表示されているのを 1ページ30ユーザーの表示にするため、 ページネーションを導入します。 Railsには豊富なページネーションメソッドが用意されています。 今回はその中で最もシンプルかつ堅牢なwill_paginateメソッド…

【Ruby on Rails5】Faker gemを利用してダミーデータを作成する

userの一覧画面などを実装した際にuserデータを一件ずつ画面登録していくのは超面倒ですね! Fakerというgemでダミーデータを作成してしまいましょう。gemfileに以下を追加 gem 'faker', '1.7.3'続いてインストール $ bundle installdb/seeds.rbに以下のよう…

【Ruby on Rails5】tableにインデックスを貼る

インデックスを張るメリット データの読み込み・取得が早くなる。 デメリット 書き込みの速度が倍かかる。 張り方 コマンドラインで以下のコマンドを実行 rails generate migration add_index_テーブル名_カラム名すると以下のマイグレーションファイルが作…

【Ruby on Rails】rails consoleをサンドバッグモードで起動する

サンドボックスモードで起動する。 このモードで起動するとコンソール自体が一つのトランザクションになるので色々便利コンソール終了時にデータベースに関する変更をロールバックすることが可能に。sandboxオプションをつけて起動する方法は以下のコマンド …

【Ruby on Rails】使用するアクションのルーティングだけを設定する方法

リソースベースのルーティングを使ってroutes.rbファイルに設定を記述すると自動で7つのルーティングが設定されてしまい、邪魔です。 post_comments GET /posts/:post_id/comments(.:format) comments#index POST /posts/:post_id/comments(.:format) commen…

【Ruby on Rails】RailsのStrong Parametersとは

Strong ParametersはDBに入れる値を制限することで、不正なパラメータの入力を防ぐ仕組み rails4 から導入されたようです。例えば以下のように受け取ったパラメーターを検証せずにDBに直接保存するようにしていた場合、 def create # render plain: params[:…