Rails
AWSのELBのヘルスチェックをクリアするために、設定を追加します。 {result: 'ok'} を 返すだけの至って単純な仕組みです。 コントローラーを作成 rails g controller elb health_check elb_controller.rb class ElbController < ApplicationController def …
capistrano で deploy したら以下のエラーが発生。 bundle stdout: Nothing written bundle stderr: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `…
/api/graphql とか /admin/graphql とか /api/graphiql とか のパスでgraphqlするための router.rbの設定です。 Rails.application.routes.draw do namespace :api do if Rails.env.development? mount GraphiQL::Rails::Engine, at: '/graphiql', graphql_p…
下記の例では、Rails側のテンプレートで items/show.html.slim の id="recommend-category" の dataに code と item-group-codeを設定しています。(ケバブケースが良い様です) items/show.html.slim #recommend-category(data-code="#{@item_group.code}" da…
自分用のメモ Graphql (Apollo) の実行に 下記が必要。 たぶん fetch するため isomorphic-unfetch yarn add isomorphic-unfetch app/javascript/packs/application.js に下記を追加 import "core-js/stable"; import "regenerator-runtime/runtime"; import…
Rubyをバージョンアップしたら key must be 32 bytes と怒られました 下記の様な複合化の処理が合った時に、 def self.decrypt(password) secret_key = 'your-key_1234567890123456789012345678901234567890' ActiveSupport::MessageEncryptor.new(secret_ke…
Rails のバージョンアップ(5.0 => 6.0)したら、下記のエラーが発生しました。 ERROR NoMethodError: undefined method `raise_in_transactional_callbacks=' for 対処方法 config/application.rb の下記をコメントアウトしたらエラー出なくなりました。 - co…
Rails の Activerecord で is null かつ empty(空文字)でセレクトした時。 結論は以下です。 User.where(name: [nil, '']) そうすると SELECT users.* FROM (users WHERE users.name = '' OR users.name IS NULL) のようなSQLが発行されます。 最初は User.w…
yarn で buefyをinstall $yarn add buefy app/javascript/packs/application.js に下記を追加 import Vue from 'vue' import Buefy from 'buefy' import 'buefy/dist/buefy.css' Vue.use(Buefy) 以上です 参考サイト buefy.org 関連記事 marketing-web.haten…
mac で heroku-cli をインストールします $ brew tap heroku/brew && brew install heroku インストール完了後 $ heroku -v をして、下記のようにversionが返ってくれば成功です。 heroku/7.35.1 darwin-x64 node-v12.13.0 devcenter.heroku.com 関連記事 プ…
ActiveRecoredのmigrationを使ってdrop tableをする場合のサンプル 一様中身は空になってしまうが、rollbackで戻せるようにしている。 class DropAdminUsers < ActiveRecord::Migration[5.0] def change drop_table :admin_users do |t| t.string :name, nul…
Ruby on RailsでActionController::InvalidCrossOriginRequestが発生した時の対策です。 なぜInvalidCrossOriginRequestが発生するのか? 大半が、Ruby on Rails が行ってくれている、CSRF(クロスサイトリクエストフォージェリ)対策に引っかかっているからだ…
やりたいことは、タイトルの通りですが、 73秒で指定した時に、00:01:13という結果が欲しい時は Time.at(73).utc.strftime('%X') と指定すると、 00:01:13 となってくれます。 本当にナイスです。 メソッド無しで考えると、3600で割り算して、60で割り算して…
下記のようなenumがあったときに、 class Item < ActiveRecord::Base enum status: { draft: 1, published: 2, test: 3 } Imteオブジェクトから Valueの値(1 とか 2 とか)を取得したい時の方法です。 hash的な考え方 まず1つ目が、 Item.statuses[item.stat…
タイトルの通りですが、Ruby on Rails でSEO系のタグをいい感じに設定が出来る meta-tags のgemを使って、og:image:widthと og:image:heightを設定する方法です。 meta-tags gemは以下です。 github.com で。 そもそも、なんで、og:image:widthと og:image:h…
例えば logined_atにUTCの時間が入っているとして、 p logined_at # 2017-06-29 02:26:41 UTC この logined_atをJSTで表示したいとき in_time_zone('Tokyo') を使います。 p logined_at.in_time_zone('Tokyo') # Thu, 29 Jun 2017 11:26:41 JST +09:00 Ruby …
ActiverecordeでカラムにNotNull制約をつけてしまったけど、 やっぱり、NotNull制約を外したいなんて時ありますよね。 そんな時は、 change_column_null マイグレーションファイルを下記の用になります。 class ChangeNotNulToUser < ActiveRecord::Migratio…
Railsのsimple_formatを使うと勝手にタグで囲まれます - text = 'aaaaa' = simple_format(text) みたいにすると <p>aaaa</p> と出力されます そんな時に、 <p> => <div> にしたい時は - text = 'aaaaa' = simple_format(text, {}, wrapper_tag: "div") とすると。 <div>aaaa</div> にた</div></p>…
Rails5でdelayed_jobを起動したら、以下のようなWARNINGが出力されました。 DEPRECATION WARNING: cleanup! is deprecated and will be removed from Rails 5.1 (use Rails.application.reloader.reload! instead of cleanup + prepare) (called from <top (required)> at bi</top>…
クロームなんかで、パスワードフィールドに勝手に入力してくるのやめて欲しいなと思って autocomplete='off' を設定しても、効かないじゃん!って思ったことありませんか? そんなときは、new-passwordです。 autocomplete='new-password' そうすると、空で…
RailsのAction Mailerを使ってSendGridのカテゴリーを設定する方法です。 まずSendGridはこちら sendgrid.kke.co.jp SendGridは、主にメール配信のサービスになります。 最近使いはじめて、最高に便利なサービスです。 無料の利用枠もあるので、興味のある方…
ActionView::MissingTemplate そうです。 Railsでviewでテンプレートが無いときに発生します。 基本的には、テンプレートを準備しなかったミスだとは思うんですが、 動的に部分テンプレートを見つけて描画したりするときなどは、 もしテンプレートがあれば、…
こちらRailsのカテゴリを階層で管理してくれるGem Awesome Nested Setです github.com そのチートシートです。 github.com 主に使いそうなところ これで一気にループ回せます。 Category.each_with_level(Category.root.self_and_descendants) do |category,…
RailsのActiveRecordでtypeカラムがあると、STI(Single Table Inheritance)としてテーブルを使おうとします。 一つのテーブルでtypeの値によって複数のモデルが共有する感じです。 これ、とても便利なんですが、意図せずtypeカラムがあってもSTIとして扱いま…
簡易的にN+1問題に対応しようとした時に、 Keyがid, ValueがそのモデルのオブジェクトのHashが欲しい時がありました。 そんな時は、index_byが良いっぽいです。 たとえば、Itemモデルで下記のようなテーブルがあって id name code 1 あああ aaaa 2 いいい bb…
Railsでチャックボックスのフォームを使おうとすると毎回迷走します。 複数チェックボックを設定してそれを、controller側でStrong parametersで取得する方法です。 ItemのidをチェックボックスのValueに設定しています。 view (省略) - @items.each do |ite…
表題の通り、Rails + Nginx環境で強制的にURLの最後に / を付ける方法です。 そもそもなぜ付ける必要があるのか? そうです。Google大先生に怒られたことがきっかけです。 Search ConsoleのHTMLの改善の項目で、重複するメタデータとして /item/12345/ /item…
RailsのViewで現在のURLを取得する方法です。 すぐ忘れてしまうので自分の備忘録。 基本的には、ユーザのヘッダー情報や環境変数を取得することができる request を使用します。 http://www.example.com/にアクセスした場合。 url = request.url p url する…
無料で使えるSSL証明書があるということでLet’s Encryptを早速 試してみました。 Let’s Encryptの公式サイトはこちら letsencrypt.org 環境 今回導入に試してみた、環境としてザックリと以下のようになります。 AWS EC2 (amazon linux) Nginx Ruby on Rails …
Railsのmigrationでindexを削除しようと思って 最初以下のように書いたら怒られました。 remove_index :items, [:shop_id, :item_id] 出力されたエラーメッセージは以下のような感じです。 Index name 'index_items_on_shop_id_and_item_id' on table 'items…