とーますメモ

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

Rails

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