ログに残したくない情報 Webアプリケーションを開発していると時々生のままではログに残したくない情報ってありますよね。 パスワード、クレジットカード番号やCVCなんかは残したくないものの代表じゃないかと思います。 よくやる方法 initializersの中でこういうコードを入れるか、 Rails.application.config.filter_parameters += ['password', 'card_number']
RubyのFaraday gem使ってるときにタイムアウト値を明示的に指定しなかった場合にどうなるかというお話。 これ、すごい頻繁にハマってる気がするのでメモする。なぜハマるかというと「タイムアウト値を指定した場合にどういう挙動になるのか?」という考えになかなか辿り着かないからですね。発想力が貧困である。 さっそく該当部分を見てみましょう。 github.com なるほどAdapterに渡してるだけ。じゃあデフォルトのAdapterであるところのNet::HTTPのデフォルト値はどうなのか(AdapterがNet::HTTPでない場合は各自で調べてください)。 docs.ruby-lang.org docs.ruby-lang.org open_timeout、read_timeoutともに(Ruby2.5の時点では)デフォルト60秒とのこと。ということは極端な話、接続が確立するまでに59
$ docker run -d --rm -e MYSQL_ROOT_PASSWORD=password mysql:8.0 Unable to find image 'mysql:8.0' locally 8.0: Pulling from library/mysql docker: no matching manifest for linux/arm64/v8 in the manifest list entries. この記事はM1MacでDockerを使ってMySQLのコンテナを立ち上げるためのものです。 事前準備 Docker Desktop(Preview)をインストール済 理由 M1Macのプラットフォームはarm64。 mysqlイメージのサポートプラットフォームはamd64。 イメージをプルする際に実行環境のプラットフォームに合わせて自動的にamd64のイメージを取得し、
論理削除を実現してくれるgem、acts_as_paranoidを試してみました。 環境 Ruby2.1.5 Rails4.2.0 インストール まずはGemfileに以下のように追加してbundle install。 gem 'acts_as_paranoid' しかしWEBrickを起動しようとすると下記エラー。 どうやらrails4系に対応してない模様。 undefined method `validate_find_options' for class `Class' (NameError) こちらのリポジトリでメンテナンスされているようなのでGemfileを下のように書き換えて再度bundle install。 これで無事にWEBrickが起動してくれるようになりました。 gem 'acts_as_paranoid', github: 'ActsAsParanoid/acts_a
こんにちは。 食べチョクの開発を副業でお手伝いしているプログラマーの花村です。 監査ログをJSONL(JSON Lines)のファイルに記録するためのGemのAuditLoggableを作成してrubygems.orgで公開しました。 ソースコードもGitHubで公開しています。 rubygems.org github.com なぜ開発したのか 食べチョクでは監査ログを記録するためにAuditedを利用していました。 AuditedはActiveRecordのコールバックを利用してモデルの変更を手軽にRDBに記録してくれる大変便利なGemです。 しかしRDBに記録するためテーブルサイズが肥大化しパフォーマンスに影響を与える場合があるというデメリットもあります。 食べチョクでは注文数の増加に伴ってこの問題に直面しました。 これを解決するにあたり以下のようなアプローチが思いつきます。 監査
(自分はRailsを書くことが多く、フロントエンドの経験は乏しいです。見方にだいぶ偏りがあると思いますので、そのあたり差し引いてお読みいただければと思います〜🙇♂️) こんにちは〜。Hotwireを仕事で使う機会があったので、実際に使ってみて感じた、良かった点、辛かった点、向いているケース、向いていないケースを共有します〜。 Hotwireとは? Turbo Driveとは? Turbo Framesとは? Turbo Streamsとは? Stimulusとは? Hotwireのデモ 良かった点 サーバーサイドに集中できる Railsの資産をフルに活かせる 後付けで段階的にSPA風の挙動を追加できる 学習コストが低い 開発コストが低い WebSocketは必須ではない 辛かった点・辛くなりそうな点 DOM更新時にレスポンスを待たないといけない SPAのユーザー体験とはだいぶ違う He
Remix SPAモードでTailwind CSSを使うときの注意点と同様に、ちょっとだけ注意が必要なのでまとめました📝 github.com Use shadcn/ui by lef237 · Pull Request #5 · lef237/lef237.github.io 意外と情報が少なく、Remix SPAモードでTailwind CSSを動かすまでに苦労したので記事に残しました📝 ※ページの最後に追記しました!(2024-03-13) 重要なところ ViteとRemixのインストールガイドを組み合わせる必要がある Install Tailwind CSS with Vite - Tailwind CSS Install Tailwind CSS with Remix - Tailwind CSS npx tailwindcss init --ts -pをする root.ts
読書好きの方向けの引用共有サービス「引用箱」をリリースしました 引用箱のサムネイル画像 引用箱 QuoteList はじめに LEF(@lef237)と申します。読み方はレフと申します。2022年からフィヨルドブートキャンプという学習コミュニティに入会し、Web開発の基礎的な部分から順番に学習しておりました。 このたび、ずっと開発を続けていたWebアプリをリリースしました。 名前は「引用箱」というサービスです。 「未知の書籍と出会うきっかけとして、既読した人による書籍の引用から、気になる書籍を探したいが、引用が集まっている場所がない」 という問題を解決するために作った、読書が好きな人向けの引用共有サービスです。📚🔍 ユーザーは書籍の引用を記録することができ、Kindleの共有機能とは違って、自分以外の人の引用記録も見ることができる点が特徴です。 前半ではこのサービスの概要や使い方を、後
※この記事では「新しくRails 7 アプリを作成するときのこと」を想定していますが、Rails 6を7に上げるときにもそれなりに役立つ情報だと思います! 結論 rails newのときにesbuildを指定してあげれば、あとはJavaScriptファイルや.jsxファイルを、.tsxにしてあげるだけでOK。 型チェックや構文チェックを導入するには少し注意が必要。 概要 現在、Rails 7を使ってフロントエンドを構築する方法には、大きく分けて3種類あります。 importmapsを使って、素のJavaScriptを使ってフロントエンドを作る esbuildを使って、JSXファイルを使ってフロントエンドを作る Rails 7をAPIモードにして、フロントエンドはNextjsで作る 自分はこの2番めの「esbuildを使ってフロントエンドを作る」を選択しました。理由は、Railsのslim上
軽量WebアプリケーションフレームワークSinatraでCookieを扱うには、Sinatra::Cookiesエクステンションを使う。 エクステンションを有効にするにはsinatra/cookiesをrequireする。 するとget()などのブロック内でcookiesが使用可能になる。 ブラウザへのCookieの設定は以下。redirectと組み合わせて使うこともできる。 require 'sinatra' require 'sinatra/cookies' get '/set_cookie' do cookies[:something] = 'foobar' redirect to('/') end
Railsにはタイムスタンプカラム( created_at / updated_at )があり、各カラムは データ作成時 created_at と updated_at が設定される データ更新時 updated_at が更新される という挙動になります。 2.2 スキーマのルール | Active Record の基礎 - Railsガイド そんな中、「同じ値でデータ更新をした場合、 updated_at は更新されない」と同僚より教わったため、メモを残します。 目次 環境 Rails consoleで動作確認 データ作成時 同じ値でデータ更新 別の値でデータ更新 同じ値で更新したときも、updated_atを更新したい場合 同じ値でデータ更新 別の値でデータ更新 参考:Djangoの auto_now_add と auto_now の場合 環境 Rails 7.0.4 なお、今回使うモ
Ruby on Rails7ではWebpackerがデフォルトで無くなったらしい... え?マジ?じゃあJavaScriptのバンドルとかどうすんの? Rails7に触れる機会がなかったのでこの辺りの疑問をながらく放置してきたが、いい加減調べることにした。 何番煎じだい?という内容だが、2023年初頭時点で見えているものとして、まとめることに意味があると信じたい。 前提 対象読者 Rails7のフロントエンド周りに関して、大きく変わったらしいということは知っていてもそれ以上詳しいことは知らない人。 この記事の目標 個人的に 採用する Rails7のフロントエンド周りの選択を固める まとめ importmap-rails Hotwire(turbo-rails + stimulus-rails) sprockets-rails tailwindcss-rails を個人的には採用していこうと
Rails 6 で omniauth-cognito-idp を使って Amazon Cognito 認証を実装するサンプルRailsAWScognito 要点 Amazon Cognitoを使えば、deviseに依存せずに、ユーザ登録・ログイン・ログアウト・パスワードリセット・ソーシャルログイン・n段階認証・SAMLなど、様々な機能がアプリケーションコードから分離するかたちで追加可能です。Amazon Cognitoの他にも、Auth0やFirebase Authentication等があり、IDaaS(Identity as a Service)と呼ばれます。 本記事では、Railsアプリケーションで動作検証をする場合の手順を記載しています。 Amazon Cognitoのユーザープールの作成とクライアントの設定の基本的な手順を解説(作業時間: 10分程度) 動作検証するためのサンプル
Ruby on Railsでよく使用される10の主要なバリデーション Ruby on Railsはデータの整合性を保つためにさまざまなバリデーションを提供しています。これらのバリデーションはモデルの属性に適用し、データが期待どおりの形式で保存されることを確認します。以下に、Railsでよく使用される10の主要なバリデーションを説明します。 1. 存在性のバリデーション (Presence Validation) presence バリデーションは、指定した属性が空でないことを確認します。これは通常、必須フィールドの検証に使用されます。たとえば、ユーザーが名前を入力する必要がある場合、以下のように使用します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く