0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ruby on Railsアップデート(DockerfileテンプレートのKubernetesルートレスポッド対応 他 2023-11-03)

Posted at

これはなに

Railsコミッタたちが連載しているThis week in Railsの内容を、簡単な補足と併せて紹介する連載です。社内slackで毎週書いていたものですが、連載力の持ち腐れな気がしてきたので公開することにしました。

引用元

今週のトピック

(弊社(https://foodison.jp/) では主にMySQLを使っているのもあり一部記事を省略しています)

DockerfileテンプレートをKubernetesのルートレスポッドに対応させる

railsの新規実行時に生成されるDockerfileがKubernetesのrootless podsで動作するようになった。

"has_one_attached "と "has_many_attached "でサービスをProcとして受け入れる

サービスを呼び出し可能なProcとして指定できるようになり、Active Storageで特殊なattachmentの関連付けをより柔軟に行えるようになった。

class User < ActiveRecord::Base
  has_one_attached :avatar, service: ->(user) do user.in_europe_region?s3_europe : :s3_usa end
end

attr_internal_defineの簡素化

Module.attr_internal_naming_format=の内部を最適化し、与えられたフォーマットから"@"プレフィックスを除去する。このメソッドに"@"プレフィックスを指定すると、非推奨の警告が表示される。

マイグレーションファイルの作成エラー時の終了ステータスが0でなくなった

マイグレーションファイルの作成にエラーがある場合、終了ステータスは0になっていたがこれを修正

これが

% bin/rails generate migration ChangeFieldToUsers
      invoke  active_record
    conflict    db/migrate/20231015071420_change_field_to_users.rb
Another migration is already named change_field_to_users: /path/to/rails/db/migrate/20231015020422_change_field_to_users.rb. Use --force to replace this migration or --skip to ignore conflicted file.
% echo $?
0

こうなった

def self.exit_on_failure? # :nodoc:
  true
end

SprocketsでTrixを使用する際の修正

Action Textが更新され、最新リリースのTrix v2.0.7が含まれるようになり、ライブラリをSprocketsで使用しようとした際の問題が修正された

変更をアサートする際のエラーメッセージの改善

minitestで提供されているassert_changes および assert_no_changes のエラーメッセージに .inspect を使用したオブジェクトが表示されるようになり、nil と空の文字列、文字列とシンボルなどの区別が容易になった

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?