とーますメモ

Ruby on Rails / Goなどの学習メモ

Rails

【Rails】Mac上でImagemagick + RMagickをインストール

Imagemagickはコマンドラインから画像の操作や表示ができるツール。 多くのOS及び言語から使用できるため人気がある。RMagickはRuby用のImagemagickインターフェース。 RubyからImagemagickを使用する場合は、このgemをインストールする。 Imagemagickのイン…

【Capistrano】リポジトリ変更時に行うこと

自分用メモ。以下のサイトがまとまっている。 capistrano3でリポジトリのURLを変更した時にやること - Qiita

【Rails】CapistranoでBitbucketからcloneしデプロイするまで試してみた

【環境】 Ubuntu + Rbenv + Rails + Puma + MySQL 1)SSH周りの設定 前提 公開リポジトリの場合は、Capistranoの設定は簡単だが、BitbucketのPrivateリポジトリからcloneする場合は、SSH認証が絡んでくるため、設定が少し複雑になる。ちなみにGithubのPriva…

【Rails】Rails5で文字列の"true"や"false"をBooleanにキャストする方法

Rails5では以下のように書ける。 ActiveRecord::Type::Boolean.new.cast(0) # false ActiveRecord::Type::Boolean.new.cast(1) # true ActiveRecord::Type::Boolean.new.cast('0') # false ActiveRecord::Type::Boolean.new.cast('1') # true ActiveRecord::…

【Rails】Sidekiqを使用してみた。

自分用メモActiveJob経由か、直接使うかは 以下の記事で詳細を書いた。 thoames.hatenadiary.jp自分の場合は、フルにSidekiqの機能を使用したかったため 「直接Sidekiqを使用する」方法を取る。 インストール Gemfile gem 'sidekiq' gem 'redis-namespace'[…

【Rails】SidekiqをActiveJob経由で使うのが良いか、直接使うのが良いのか。

初めてバックエンドの非同期処理を書くことになったため 良さそうなgemを探したところ、以下の3つが有名なことがわかった。・Delayed Job ・Resque ・Sidekiq色んなサイトで、各gemの説明があるので ここではその説明は省くが 自分の場合、以下の理由から・…

【Shopify】Rails内でWebhookを試してみた

自分用メモ。ShopifyのWebhookの使い方については 既に素晴らしいまとめをしてくださっている方が いるので、その方のやり方を踏襲。qiita.com一点だけ追記すると、検証ロジックの「Secret Key」は 手動でWebhookを作成する場合と、AdminAPIを用いて作成する…

【Shopify】Railsを利用したShopifyアプリを作成してみる

自分用メモ。 アプリを作成する前に前提として以下の3つの準備が必要 ①ngrokの設定 最初からサーバを用意できるのならば、それでも良いかもしれないが 自分の場合、ローカルマシンを開発サーバとして、 Shopifyから「直接」アクセスさせる方法を試す。local…

【Rails】Carrierwave(1.2.2)をActiveRecordと切り離して使用する方法を試してみた。

自分の用途としては、ただ画像を外部APIへ送信するため ローカルDBに保存する必要がなかった。しかし、多くのサイトを見るとCarrierwaveをActiveRecordと併せて使用する サンプル例が多いため、自分で調べてみた。 インストール Gemfileに追記 gem 'carrierw…

【Rails】独自例外の置き場所(配置ディレクトリ)について

自分用メモ。日本語で検索しても情報が出てこなかったので ちょっと調べてみた。調べ方としてはGithubのコード検索で「 出てきたコードがどのディレクトリに配置されているのかで調査。10件〜15件ぐらい見た感じだと、大体が「lib」ディレクトリ内に入れる。…

【Rails5】バリデーションエラーでtranslation missingが出る。

自分の場合、英語で表示したかったの 以下を設定したが何も変わらず。失敗した例: config/application.rb config.i18n.default_locale = :en 以下を設定したら上手く表示された。成功した例: config/application.rb config.i18n.fallbacks = [:en] [参考] …

【Rails】renderで指定したテンプレートの内容(文字列)だけを取得したい場合

renderではなく、「render_to_string」を使用すれば良い。例)views/templates/_default.html.erbを使用する前提。 render_to_string partial: "templates/default", locals: { title: params[:title], body: params[:body] } [参考] ruby-rails.hatenadiary…

【Shopify × Rails】ShopifyAppに手動でログインする方法

自分用メモ。shopify_appを使用しているなら通常は 未ログイン状態の場合、ログイン画面に遷移し、omniauthを通じた認証が行われる。認証後はセッションにShopify情報にアクセスするためのセッションが保存される。ただ自分の場合、Activeadminと組み合わせ…

【Activeadmin超入門】CanCanCanの設定 〜その2〜

前回の【Activeadmin超入門】インストール・環境設定 〜その1〜 - とーますメモに続けて、権限管理を行うためのCanCanCanの設定を書いていく。前の記事にも書いたとおり、CanCanCanはCanCanの後継プロジェクトであり、 設定の仕方はCanCanと同じように記述…

【Activeadmin超入門】デザイン・スキン変更 〜おまけ〜

複数の管理画面をactiveadminで使用している場合は 間違わないようにするために、できれば違うデザインを反映させたいところ。ここではActiveadminで使用できるスキンである「ActiveSkin」を紹介する。github.com 1)インストール gem 'active_skin' 2)SC…

【Activeadmin超入門】インストール・環境設定 〜その1〜

Activeadminとは 要は「管理画面」系のRailsアプリをお手軽に作ることができるgem。デザインは単調なものだが、決まったやり方に沿って作れば、 CRUD画面、検索フィルター、バッチ処理、CSV出力などの処理 また連携するgemを入れることでユーザ認証、権限管…

【Rails】select_tag使用時にデフォルト値を設定する方法

ググってもさっくり結果が出なかったので自分用のメモ。select - リファレンス - - Railsドキュメント上記の公式ページを見ると、 optionsの設定には、「options_for_select」を使用しているが :selectedを指定している例がなかったので調べたら、 やっぱり…

【RSpec】テスト時に他のDBと同じデータを使いたい!

結論から書くと以下。1)seed_dumpでDBからデータを抽出 2)db:seed用のrakeタスクを作成 3)1)で作成したファイルを指定し、データを挿入FactoryBot(旧:FactoryGirl)では面倒くさい時、 開発用などデータが入っているDBのデータを、 そのまま利用し…

【CircleCI2.0】Rspecの並行テストの設定

RailsのCircleCIのサンプルyml(Sample.yml)を見ると 以下のような記述がある # run tests! - run: name: run tests command: | mkdir /tmp/test-results TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timing…

【CircleCI2.0 ✕ Rails】database.ymlはpushしたくないけど、CircleCIを使うにはpushしないといけない問題

自社の開発では、database.ymlは .gitignoreに追加し、リポジトリにpushしない方針にしている。そしてチームメンバーは各々のユーザ名やパスワードを database.ymlに設定し、各環境のDBを使用する。 ※チームメンバーの開発環境(VM)が全て同じものであるな…

【CircleCI2.0】入れておきたいGem

Rubocop 書かれたRubyコードが「コーディング規約」通りに 書かれているかチェックしてくれる。チェックさせないファイルを指定したり、 一部チェックを無効化したりすることもできる。また既存のプロジェクトに導入した場合などで 大量に直さないといけない…