Comments

rails 7.0からrails 7.1への移行(アップデート、アップグレード)で必要な作業

wakairo @wakairo

Rails 7.1への移行におけるActive Storageのmigration

bin/rails app:updateコマンドを実行すると以下の3つのファイルがdb/migrate/に作成されますが、
Active Storageをまだ使用したことがないアプリケーションでは、 これら3つのファイルは単純に削除してしまって良いはずです。

  • xxx_add_service_name_to_active_storage_blobs.active_storage.rb
  • xxx_create_active_storage_variant_records.active_storage.rb
  • xxx_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb

より正確に言うと、データベースにactive_storage_blobsテーブルが存在していない場合は、 これら3つのファイルは単純に削除してしまって良いはずです。 その理由として、これら3つのファイルはデータベースのactive_storage_blobsテーブルに対して影響を与えるものであり、 table_exists?(:active_storage_blobs)がfalseを返すと何もせずにreturnする処理が3つのファイル全てに記述されているからです。

ご自身のRailsアプリケーションのデータベースにactive_storage_blobsテーブルが存在するかの確認はbin/rails consoleを実行して、 以下のようにコマンドを実行することで行えます。 結果がfalseであればactive_storage_blobsテーブルは存在していない、つまり前述の3つのファイルは削除で大丈夫のはずです。

irb(main):002> ActiveRecord::Base.connection.table_exists? :active_storage_blobs
=> false

ちなみに、データベースにあるテーブルの一覧を見たい場合にはbin/rails consoleActiveRecord::Base.connection.tablesを叩くことでテーブルの一覧を確認できます。

0
Raw
https://www.techtips.page/ja/comments/222

Copilot Studioのニュースや記事

wakairo @wakairo

ちなみに、著者の方は「マイクロソフトのエンジニア」だそうです。

仕事半分趣味半分でエンジニアをやっています。 正体はマイクロソフトのエンジニアです。しかし、こちらで配信している内容は個人の趣味活動のため、マイクロソフトとは一切関係ありませんし、サポートの対象外でございます。

1
Raw
https://www.techtips.page/ja/comments/214
😄1

rails 7.0からrails 7.1への移行(アップデート、アップグレード)で必要な作業

wakairo @wakairo

基本的にはRailsガイドの手順に従えば良いと思います。

ガイドの手順にもありますが、ぜひbin/rails app:updateコマンドを活用しましょう。

bin/rails app:updateコマンドの実行例

# bin/rails app:update
   identical  config/boot.rb
       exist  config
    conflict  config/application.rb
Overwrite /x/techtips/config/application.rb? (enter "h" for help) [Ynaqdhm] h
        Y - yes, overwrite
        n - no, do not overwrite
        a - all, overwrite this and all others
        q - quit, abort
        h - help, show this help
        d - diff, show the differences between the old and the new
        m - merge, run merge tool
Overwrite /x/techtips/config/application.rb? (enter "h" for help) [Ynaqdhm]
       force  config/application.rb
   identical  config/environment.rb
       exist  config/environments
    conflict  config/environments/development.rb
Overwrite /x/techtips/config/environments/development.rb? (enter "h" for help) [Ynaqdhm]
       force  config/environments/development.rb
    conflict  config/environments/production.rb
Overwrite /x/techtips/config/environments/production.rb? (enter "h" for help) [Ynaqdhm]
       force  config/environments/production.rb
    conflict  config/environments/test.rb
Overwrite /x/techtips/config/environments/test.rb? (enter "h" for help) [Ynaqdhm]
       force  config/environments/test.rb
       exist  config/initializers
    conflict  config/initializers/assets.rb
Overwrite /x/techtips/config/initializers/assets.rb? (enter "h" for help) [Ynaqdhm]
       force  config/initializers/assets.rb
    conflict  config/initializers/content_security_policy.rb
Overwrite /x/techtips/config/initializers/content_security_policy.rb? (enter "h" for help) [Ynaqdhm]
       force  config/initializers/content_security_policy.rb
      create  config/initializers/cors.rb
    conflict  config/initializers/filter_parameter_logging.rb
Overwrite /x/techtips/config/initializers/filter_parameter_logging.rb? (enter "h" for help) [Ynaqdhm]
       force  config/initializers/filter_parameter_logging.rb
   identical  config/initializers/inflections.rb
      create  config/initializers/new_framework_defaults_7_1.rb
    conflict  config/initializers/permissions_policy.rb
Overwrite /x/techtips/config/initializers/permissions_policy.rb? (enter "h" for help) [Ynaqdhm]
       force  config/initializers/permissions_policy.rb
      remove  config/initializers/cors.rb
       exist  bin
   identical  bin/rails
   identical  bin/rake
    conflict  bin/setup
Overwrite /x/techtips/bin/setup? (enter "h" for help) [Ynaqdhm]
       force  bin/setup
       rails  active_storage:update
Copied migration 20231128024504_add_service_name_to_active_storage_blobs.active_storage.rb from active_storage
Copied migration 20231128024505_create_active_storage_variant_records.active_storage.rb from active_storage
Copied migration 20231128024506_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb from active_storage

After this, check Rails upgrade guide at https://guides.rubyonrails.org/upgrading_ruby_on_rails.html for more details about upgrading your app.
0
Raw
https://www.techtips.page/ja/comments/213

closure_treeはRailsのfixturesには未対応の模様

wakairo @wakairo

closure_treeは、現在のところfixturesと組み合わせて利用されることが想定されていないようです。
と言うのも、closure_tree gemを利用したRails 7のappのtestにおいて、fixturesを用いているのですが、いくつか困った現象に遭遇しているためです。

開発で困っている現象

具体的には、以下のような現象に遭遇しています。

現在の対応策

これらの現象は、test中でcreateメソッド等を使用して作成したオブジェクトでは発生しません。
そこで前述の現象に対応するため、closure_treeを利用しているモデルでは、create等のメソッドでオブジェクトを作成し、testに用いています。
なお、小手先のテクニックとして、fixturesで記述したテスト用初期設定を、createで作ったオブジェクトに移し替える処理を書くという方法があります。こうすることで、テスト用初期設定はfixturesに書きつつも、困った現象は回避することが出来ます。

0
Raw
https://www.techtips.page/ja/comments/207

Stimulusの記事の情報が集まるTopic

wakairo @wakairo
最終更新

Stimulusには、Targetに、Valueに、Action Parameterにと、HTML側からJavaScript側へ何かしらを引き渡す仕組みがいろいろとあります。ですので、これら3つの仕組みについてサンプルコードを交えて説明する記事を書きました。

0
Raw
https://www.techtips.page/ja/comments/206