SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

Railsの個人アプリを 6から7にver アップする


元の状態

ruby '3.3.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.1.4.1'
gem 'rails', '7.1.3'

にしていく

$ bundle update rails

無事完了

続けてこちら

bundle exec rails app:update

こんな感じで上書きするか でてきます

$ bundle exec rails app:update
    conflict  config/boot.rb
Overwrite /Users/sakurawi/workspace/XXX/config/boot.rb? (enter "h" for help) [Ynaqdhm] y
       force  config/boot.rb
       exist  config
    conflict  config/application.rb

修正部分

基本上書きでよさそう

config/environments/development.rb の以下の部分のみ戻した。

    config.time_zone = 'Tokyo'
    config.active_record.default_timezone = :local
    config.i18n.default_locale = :ja
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]

上記は i18nも含んでいる

あと以下も足した

    config.load_defaults 7.0

にして動かしてみたら、動く

master.keyがなくしていたので再発行...

credentials.ymlを削除して、 EDITOR=vim rails credentials:edit を実行

jsが動かない

importmapに寄せてみる

bin/bundle add importmap-rails
$ bin/rails importmap:install
       apply  /Users/sakurawi/.gem/gems/importmap-rails-2.0.1/lib/install/install.rb
  Add Importmap include tags in application layout
      insert    app/views/layouts/application.html.erb
  Create application.js module as entrypoint
      create    app/javascript/application.js
  Use vendor/javascript for downloaded pins
      create    vendor/javascript
      create    vendor/javascript/.keep
  Ensure JavaScript files are in the Sprocket manifest
      append    app/assets/config/manifest.js
  Configure importmap paths in config/importmap.rb
      create    config/importmap.rb
  Copying binstub
      create    bin/importmap
         run  bundle install
Bundle complete! 27 Gemfile dependencies, 109 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

jsの読み込みあたりはこの辺で行えそう。

zenn.dev

https://zenn.dev/yama525/articles/8537244b477059

で、動くことができた。

jsのpacksとか、余分なものを消したい

app/views/layouts/application.html.erb の不要なの消せそう

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
    <%= stylesheet_pack_tag "application", "data-turbo-track": "reload" %>
    <%= javascript_importmap_tags %>

<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> を消して、

<%= stylesheet_link_tag "tailwind", "inter-font", "data-turbo-track": "reload" %>

で対応させる

importmap的に、 アプリトップ配下に 以下の空フォルダが必要っぽい。

stackoverflow.com

結論

jsがうまく読み込まれない。

heroku,HTTP2が対応してないらしく、 importmapでのjsの読み込みができないかも。