Categories
├─Books Cloud services Events Standard TechTips Others
├─Software
│ ├─Mac OS Programming languages Windows Others
│ ├─Libraries
│ │ └─C C++ Java JavaScript Python Ruby Rust Others
│ └─Unix
│ └─Unix commands Others
└─Web
└─Document Service Others
一時的な環境変数設定はenvコマンドでも出来る
あるコマンドの実行のためだけに一時的に環境変数を設定するには、 bashやzshでは実行したいコマンドの直前で環境変数設定をすればOKです。
具体的には、下例のように、タイムゾーンに対応する環境変数を設定(
TZ=UTC
)して、date
コマンドを実行することが出来ます。ところが、この機能は一部の古いシェルや軽量シェルには備わっていないらしいです。 そのようなシェルでは、シェルに依存しない
env
コマンドを以下のように利用して同じことが可能、という小ネタでした。「Getting Started on Heroku with Rails 8.x」が「db:migrate」でエラーになる
Herokuを使ってRails 8のアプリを運用するときに手始めに試されるであろうGetting Started on Heroku with Rails 8.xですが、「Last updated November 13, 2024」の版では、
heroku run rake db:migrate
のところでエラーが出ます。原因は、Rails 8のデフォルトの新規アプリでは、Solid CacheとSolid Queue、Solid Cableが有効になっており、これら3つの機能はそれぞれデータベースを1つずつ必要とするところにあると思われます。 もう少し詳しく言うと、Rails 7まではアプリ本体の情報を記録するprimaryデータベース1つを用意してそのデータベースへの接続設定を行うだけで良かったところが、 Rails 8からはprimaryデータベースに加えて前述の3つの機能用にそれぞれデータベースを用意して設定しないといけなくなってしまっているのに、 渦中のGetting Startedにはそれに対応する作業の記述がないため、マイグレーションでエラーが出ているものと思われます。
新規リリースに伴うRailsガイドの更新の情報
Rails 8.0.1のリリースに伴い、Railsガイドが更新されました。更新内容は、Railsガイド公式による以下の記事をご参照ください。
PmRails 1.0をリリースしました。
PmRails 1.0.0をリリースしました。
PmRailsは、Ruby on Railsのアプリケーションのテストまたは開発をするためのツールセットです。 RailsやRailsが依存するものをローカル環境にインストールすることなく使用できます。 Podmanを活用し、Railsプロジェクトのための隔離されたコンテナ環境を作成します。
ご不明な点や質問などございましたら、このTopicにお気軽にお寄せ下さい。できる範囲で回答いたします。
Rails 8.0の新機能に対応するRails guidesのページ
Rails 8.0で導入された新機能に関して記述しているRails guidesのページを以下にまとめました。
rails generate authentication
: https://guides.rubyonrails.org/security.html#authenticationなお、Solid Cableの記述がRails guidesのどこにあるかは分かりませんでした。
ちなみに、GitHubのレポジトリは以下の通りで、そのREADME等からも情報を得られます。
Podmanを利用して、簡単にローカルでRailsガイドの編集内容を確認する方法
RailsガイドのPull Requestは編集後の生成結果を確認せずに送って良いそうですが、 送る前に確認している方に向けて、Podmanを利用して簡単にローカルでRailsガイドの編集内容を確認する方法のご紹介です。
メインとなるのは、以下の1行のコマンドです。毎回コピペしても良いのですが、長いのでエイリアスを貼ったり、PATHの通った場所にこのコマンドのシェルスクリプトを置いても良いと思います。
環境構築
必要になるのはシェルスクリプトを実行できる環境とPodmanのみです。 Podmanのインストールに関してはPodmanの公式インストールガイドをご覧ください。 ちなみにUbuntuなど多くのLinuxディストリビューションでは、aptなどの標準パッケージ管理ツールでPodmanのインストールが可能です。
Podmanを利用して、簡単にローカルでRailsガイドの編集内容を確認する具体的な方法
Podmanがインストールできていれば、以下の手順でRailsガイドの編集と確認が行えます。
/guides/source/ja
内の Markdown ファイルを編集する動作不良が起きた等でgemを全て削除したいとき
ちなみに、上述の1行コマンドは
vendor/bundle/
にgemをインストールします。 Rubyのバージョンが変わって動作不良が起きた際などは、rm -rf vendor/bundle/
でgemを全て削除して綺麗な状態にすることが出来ます。新規リリースに伴うRailsガイドの更新の情報
Rails 8.0のリリースに伴い、Railsガイドが更新されました。更新内容は、Railsガイド公式による以下の記事をご参照ください。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるlogger
config.logger
は、Railsアプリで用いるロガーの設定です。rails new
で生成されるconfig/environments/production.rbにおいて、 8.0からこの設定について以下の変更が行われました(この変更のPRその1とPRその2)。この変更により、Kamralを用いたproduction環境ではタイムスタンプが二重に表示されなくなります。既存アプリでも、production環境でタイムスタンプが二重になっている場合には、この変更を行ってタイムスタンプが1つになるようにすると良いかもしれません。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるactive_record.attributes_for_inspect
config.active_record.attributes_for_inspect
は、Active Recordオブジェクトのinspectに関わる設定です。rails new
で生成されるconfig/environments/production.rbにおいて、 8.0からこの設定を行う以下のコードが追加されました(この変更のPR)。このコードの追加により、production環境ではinspectの結果に基本的にidのみが含まれるようになります。この設定はproduction環境でのパフォーマンスの悪化をさけるための変更に端を発していますので、既存アプリでもこのコードを追加すると良いかもしれません。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるaction_mailer.perform_caching
config.action_mailer.perform_caching
は、メーラーテンプレートでフラグメントキャッシングを行うかどうかの設定です。rails new
で生成されるconfig/environments/production.rbにおいて、 8.0からは以下のようにこの設定を行うコードが削除されました(この変更のPRとこの変更のCommit)。このキャッシングを無効にするコードの削除により、メーラーテンプレートでのフラグメントキャッシングが有効になります。既存アプリでもメーラーテンプレートでのフラグメントキャッシングを有効にしたい場合は、このコードの削除により可能です。