Ruby on Rails
海外ドラマの視聴記録サービス mitanoを開発・リリースするにあたり、 ruby&ruby on rails を開発言語に採用しました。 www.mitano.jp そのさいの学習フローとして、自分なりに色々模索した結果 以下のようなフローでrails開発に取り組み それなりにやり易か…
こんにちは 今年の5月末あたりに 海外ドラマの感想を共有するSNS mitanoというWebサービスをリリースしました。 www.mitano.jp 1ヶ月と少し経過したのでブログに現在の状況をまとめてみようかと思います。 mitanoとはどんなサービスか 「エピソード単位での…
現在、localの開発環境のDBにはsqlite本番環境のDBはpostgreSQLを採用しています。 localだと問題なく動いていたものを本番にdeployして動作確認を行ってみたところ以下の500エラーが発生 UndefinedFunction: ERROR: operator does not exist: bigint = char…
海外ドラマの感想を共有するSNS mitanoというサービスを運営しております。 www.mitano.jp PCの場合にはこの画像、スマホの場合にはこの画像を表示ということがしたい。mitanoのドラマのimage情報はアマゾンのイメージサーバーのURLをDBに以下のように保持し…
modelに対してdefault scopeを定義すればOK 以下は作成時間が新しい順に設定 class Micropost < ApplicationRecord default_scope -> { order(created_at: :desc) } end
以下のように1ページに100ユーザーも表示されているのを 1ページ30ユーザーの表示にするため、 ページネーションを導入します。 Railsには豊富なページネーションメソッドが用意されています。 今回はその中で最もシンプルかつ堅牢なwill_paginateメソッド…
userの一覧画面などを実装した際にuserデータを一件ずつ画面登録していくのは超面倒ですね! Fakerというgemでダミーデータを作成してしまいましょう。gemfileに以下を追加 gem 'faker', '1.7.3'続いてインストール $ bundle installdb/seeds.rbに以下のよう…
インデックスを張るメリット データの読み込み・取得が早くなる。 デメリット 書き込みの速度が倍かかる。 張り方 コマンドラインで以下のコマンドを実行 rails generate migration add_index_テーブル名_カラム名すると以下のマイグレーションファイルが作…
サンドボックスモードで起動する。 このモードで起動するとコンソール自体が一つのトランザクションになるので色々便利コンソール終了時にデータベースに関する変更をロールバックすることが可能に。sandboxオプションをつけて起動する方法は以下のコマンド …
リソースベースのルーティングを使ってroutes.rbファイルに設定を記述すると自動で7つのルーティングが設定されてしまい、邪魔です。 post_comments GET /posts/:post_id/comments(.:format) comments#index POST /posts/:post_id/comments(.:format) commen…
Strong ParametersはDBに入れる値を制限することで、不正なパラメータの入力を防ぐ仕組み rails4 から導入されたようです。例えば以下のように受け取ったパラメーターを検証せずにDBに直接保存するようにしていた場合、 def create # render plain: params[:…