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

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

Ruby

【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】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[:…

【Ruby】キーワード引数の書き方

通常のメソッドの書き方に加えて、 ① 定義側で、引数の後にコロンを付ける ② 呼び出し側で、値の前に引数名を書く とすることで、キーワード引数を持つメソッドを書くことが可能。 ■通常の書き方 def buy(item, price, count) puts "#{item}を#{count}台のお…

【Ruby】facebookでのログインに対応する方法

まずはfacebookのdevelopper用のサイトでアプリを登録しておきます。 developers.facebook.com gemの導入 OmniAuth: Overview · plataformatec/devise Wiki · GitHub上記サイトの手順に沿って行います。gemfileに以下を追加 gem 'omniauth-facebook'ターミナ…

【Ruby on Rails5】toastrを導入し、かっこいいログインメッセージを表示する

トースターをアプリに適用してみます。以下のサイトでトースターのでもが見れます。toastr examples 右上に出ているやつです。導入して使って見ます。quick startをみると以下のステップで導入ができるようです。 まずはgemを入れます。 gemを編集し追記 タ…

【Ruby on rails5】deviceを導入して認証機能をつける【Ruby】

deviceは 認証系アプリに必要な機能を簡単に追加できる便利なgemです。まずはdeviceのgemを以下のページを元に導入。 github.comGemfileに追記 gem 'devise'bundle installでインストール すると以下のような文言がターミナルに表示されるので一個ずつ設定し…

【Ruby on Rails】 bootstrapを導入する

bootstrapの導入は簡単です。 このページに手順が掲載されているので手順通り実行していくだけ GitHub - twbs/bootstrap-sass: Official Sass port of Bootstrap 2 and 3. 必要なgemのインストール cssを加える javascriptを加える 以上の3ステップで完了で…

【Ruby】超簡単!macでruby on ra rails環境をインストールする手順

以下のコマンドをターミナルで順番に叩いて行けば 必ず誰でもRuby on Rails環境が構築できます。①コマンドラインツールをインストール! xcode-select --install②Homebrewをインストール!! ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homeb…