はじめに
Rails で Devise と論理削除を両立する方法。
TL;DR
- 論理削除は jhawthorn/discard を利用
- 論理削除されたユーザーのログインを無効化
active_for_authentication?
をオーバーライド
- DB のユニーク制約を再設定する
validatable
と同等のバリデーションを自分で設定
Rails で Devise と論理削除を両立する方法。
active_for_authentication?
をオーバーライドvalidatable
と同等のバリデーションを自分で設定
Rails で sitemap_generator
を使って sitemap(sitemap.xml.gz
)を作成する方法にについて整理した。
実運用で使うであろう whenever
と組み合わせたバッチ処理についても合わせて整理した。
sitemap_generator
, whenever
を追加してインストール[bundle exec] rails sitemap:install
で config/sitemap.rb
を作成sitemap.xml.gz
に出力したい内容を記述[bundle exec] rails sitemap:refresh
で public/sitemap.xml.gz
の作成や更新[bundle exec] wheneverize
で config/schedule.rb
を作成rake 'sitemap:refresh'
)を記述[bundle exec] whenever --update-crontab
で cron ジョブの設定yuki24/rambulance で動的なエラーページを表示する方法についてまとめた。
Gemfile
に gem "rambulance"
追加 → bundle
(or bundle install
) でインストールrails g rambulance:install
でセットアップconfig/initializers/rambulance.rb
に "例外" => "対応ファイル"
のペアを記述app/views/errors/対応ファイル.html.xxx
にエラーページの内容を記述/rambulance/対応ファイル
にアクセスすると、エラーページの内容が確認できるRails で favicn を設定する方法(と、ついでに favicon そのものの生成)についてまとめた。
favicon_link_tag
を使う/public
配下の場合は /
始まりで指定/app/assets
など配下の場合は /
無しで指定簡易的に「あなたはxx歳以上ですか?」の年齢認証ページを挟む方法について整理した。
前提や要件は以下。
ちょっと分かりづらいけど。
Rails で静的ページを作成する方法について調べて、thoughtbot/high_voltage に辿り着いたので使い方を整理した。
Gemfile
に gem 'high_voltage'
を追加して bundle
でインストールapp/views/pages/
配下に静的ページ用の view ファイルを作成link_to 'About', page_path('about')
のようにすると静的ページへのリンクを生成可能Rails で OGP meta tags を設定する方法について整理した。この例では content_for
を使ってページ別に定義する方法を用いている。
yield(:ogp)
を追加し、ページ別の設定内容を展開content_for(:ogp)
でページ別の設定内容を記述docker-lambda
で AWS Lambda Function を開発する方法を調べた。
docker-lambda
を試したdocker-lambda
はいいぞRails で既存の DB を利用するアプリケーションの作り方を調べた。注意点としては、Rails からは DB の更新は行わず、読み込みのみ(Read Only)という構成である。
※最終的にはアクセスログなどのテーブルを更新することになると思うが、「アプリケーション本体の機能としては DB の更新はなし」(別のプログラムで DB が作られる)というイメージ。
config/database.yml
と app/models/your_model.rb
だけ作れば良いdb/schema.rb
や db/migrate/xxxx.rb
は不要db/schema.rb
あると、DB の構成確認できて便利かもね冒頭に述べた通り、別プログラムで DB が作られているような構成で、ユーザー表示部分のみを Rails で提供したい場合の使い方を調べた。
続きを読む