2024-06-16

Rails

ArticlesController でこのように Basic 認証を入れた
例えば記事の新規作成ページにアクセスしようとすると Basic 認証を求められる

http_basic_authenticate_with name: "dhh", password: "secret", except: [:index, :show]

一覧にある New Article というボタンにホバーしただけで Basic 認証を求められてしまう

Turbo v8 からプリフェッチがデフォルトで有効になっているため
https://turbo.hotwired.dev/handbook/drive#prefetching-links-on-hover

とりあえずこのようにしてリンクの部分だけ無効にした

  <%= link_to "New Article", new_article_path, class: "inline-block bg-blue-600 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded", data: { turbo_prefetch: false }

Rails 7.1 で enum の構文が変わる

https://techracho.bpsinc.jp/hachi8833/2021_06_17/105107

class Post < ActiveRecord::Base
  enum :status, [ :draft, :published, :archived ], prefix: true, scopes: false
  enum :category, [ :free, :premium ], suffix: true, default: :free
end

ハッシュ構文でも有効

class Post < ActiveRecord::Base
  enum :status, { draft: 0, published: 1, archived: 2 }, prefix: true, scopes: false
  enum :category, { free: 0, premium: 1 }, suffix: true, default: :free
end

ちな _prefix などのオプションは _ をつけなくて良くなる。Rails 7.2.0beta2 ではすでに廃止されており、それに気づかなくてハマった…