OOZOU
お問い合わせ
TIL一覧に戻る
ruby on rails

Rails 5 の attributes API に新しい型を追加する

2020年10月13日

Rails 5 の attributes API を使うと、フォームオブジェクトをとても簡単に作れます。

以前はメールアドレスを小文字化するために after_initialize コールバックを使っていましたが、次のコードで :email 型を定義すれば、値をセットしたときに自動的にキャストされます。

これには、その後にメールアドレスの値をセットする呼び出しでもキャストされるという利点があります。

class EmailType < ActiveModel::Type::String
  def cast(value)
    return super unless value.is_a?(String)
    super(value.downcase)
  end
end

ActiveModel::Type.register(:email, EmailType)
class Foo
  include ActiveModel::Model
  include ActiveModel::Attributes

  attribute :email, :email
end
> Foo.new(email: 'EMAIL@MAIL.com').email
=> 'email@mail.com'

「ruby on rails」の関連記事

ruby on rails2022年2月10日

Punditポリシーで許可パラメータをデフォルトとアクション別に管理する

許可パラメータを管理するには、ポリシーに permitted\attributes と permitted\attributes\for\#{action} を追加します。例:

ruby on rails2022年1月31日

Turboでのフォーム送信には `requestSubmit` を使う

Turboはformのsubmitイベントをリッスンします。そのため、JSでフォームを送信するときは必ず requestSubmit を使いましょう。

ruby on rails2022年1月19日

GitHub Actions で Rubocop と ESLint にバンドルされた gem を無視させる

Rails プロジェクトでは、GitHub Actions で gem を vendor ディレクトリにインストールして、以降の実行でキャッシュできるようにすることがよくあります。

プロジェクトをお考えですか?

あなたが構築しているものについてお聞かせください。

会話を始めるhello@oozou.com
OOZOU Logo

バンコク · シンガポール · 香港

X
Facebook
Instagram
LinkedIn

サービス

  • Web開発
  • AIエージェント & 生成AI
  • モバイルアプリ開発
  • データ分析 & エンジニアリング
  • UI/UX & プロダクトデザイン
  • デジタルトランスフォーメーション

会社情報

  • 会社概要
  • 採用情報
  • ブログ
  • 事例研究
  • Today I Learned
  • お問い合わせ

その他

  • 業界
  • パートナーネットワーク
© 2026 OOZOU. 無断転載を禁じます。
プライバシーポリシー行動規範ABACポリシー