「Ruby on Rails」のバージョン7から、Hotwireという機能が入ったんですけれども、これも、たぶんベロシティをケアしているからこそ生まれたテクノロジーなんじゃないかなと思います。
(中略)
非常に興味深いことで、昔は、Railsアプリケーションは例えば、「15分でWebアプリケーションを作りました」みたいなデモをしていたわけなんですけれども、極端な話、現代的なシングルページアプリケーションを15分で作ることができるようになるという希望が、これによって与えられたということだと思います。
Ruby on Railsのサポート終了日(各バージョンのEOL)
railsの各バージョンについて、セキュリティアップデートが行われる期限(End-of-Life)は以下の通りです。
6.1.xは、以下の通りサポートが終了しています。
なお、railsのサポート期間に関するより詳細な情報については本家のメンテナンス・ポリシーを参照してください。
meta-tags側のtruncateでは、スペース文字のところで切り詰めが行われます
meta-tagsのv2.21.0で'truncate_on_natural_separator'の設定が追加されました。この設定を利用することで、スペース文字のところでの切り詰めを回避できるようになりました。このことを上のコメントに反映しました。
activerecordでは、firstを使った方が実装とSQLが揃って可読性が上がる
こちらの記事によると、activerecordでlastを使った場合、指定したorderを逆にして"LIMIT 1"とするSQLが発行されるそうです。
一方で、firstを使った場合、指定したorderはそのままで"LIMIT 1"とするSQLとなるので、railsのコードとSQLの対応関係が分かりやすくなります。
したがって、lastよりもfirstを使った方が実装とSQLが揃って可読性が上がるということがこの記事で主張されていました。 ご参考まで。
commonmarker v1.xは、出力の編集が必要ならまだ時期尚早?
2023/12/25にcommonmarker v1.0.0がリリースされました。 それから4ヶ月以上が経過していますが、v1.xを採用せずにv0.xに留まっているライブラリやプロジェクトが多いように見受けられます。
たとえば、 jekyll-commonmarkのgem指定や commonmarker-rougeのgem指定は、 2024/05/13現在ではv0.xになっています。
v0.xで出来ていた編集操作がv1.xではまだ出来ない?
commonmarkerにMarkdownを入力して、出力されたHTMLをそのまま使う分には現在のv1.xで十分でしょう。 しかし、スタイル変更やJavaScriptによる機能付与などで、出力されるHTMLを多少変更したいことがあります。 v0.xではこういうときに使えるものとして、任意のHTMLを挿入する方法があったのですが、少なくともこのv0.xの方法はv1.xでは出来なくなったようです。
Pluginの活用か何かで、v1.xでもv0.xと同じように、出力のHTMLを部分的に好き勝手な形に編集することは出来るのでしょうか? ご存じの方がいらっしゃいましたら、コメントをいただけると嬉しいです。
WSL2上にてrails serverで立ち上げたサーバに別デバイスからのアクセスを可能にする方法
別デバイスからhttpsで
rails server
にアクセスする方法前述の方法で別デバイスからhttpでアクセスできるようになりますが、httpsでアクセスする必要がある場合には、
local-ssl-proxy
を使ってhttpsをhttpに振り向けることで、httpsアクセスが可能になります。具体的な方法は以下をご覧ください。 なお別デバイスからhttpsでアクセスするには、前述のポートフォワーディングとファイアウォールの設定をhttpsのポート番号で行う必要があります。local-ssl-proxyを使ってhttpsでhttp://localhost:3000/へアクセスする方法
背景
Webの機能には、httpsでアクセスしているときにしか利用できないものがあります。 例えば、navigator.clipboardを用いてクリップボードへ書き込む機能はhttpsでアクセスしているときにのみ利用可能です。 ローカル環境においてhttpで走っている開発中のアプリに対して、こういった機能をテストするために、httpsでアクセスしたい場合があります。
ローカルでhttpsアクセスをhttpアクセスへ振り向ける方法
以下のコマンドを実行すれば、httpで走っている( http://localhost:3000/ )アプリに、ブラウザからhttps( https://localhost:3001/ )からアクセスできるようになります。
なお、アプリが走っているPCとは別のデバイスからアクセスする場合には、httpのポートのために行ったポートフォワーディングやファイアウォールの設定がhttpsのポートにも必要となります。
余談その1
Copilot先生によれば、httpで走っているアプリにhttps相当でアクセスするための別の方法としては、以下のものがあるそうです。
なお、Copilot先生の回答全文はこちらです。
余談その2
local-ssl-proxy
は、Copilot先生に教えてもらいました。Google検索ではlocal-ssl-proxy
にはたどり着いていませんでした。importmap-railsは、2.x系でiOS 16.3以前のサポートを打ち切りました。
回避策が公式リポジトリのREADMEに掲載されたので、回避策のところを更新しました。
w3c_validators gemでNu validatorのコンテナイメージを利用する場合
Nu validatorのコンテナイメージである
ghcr.io/validator/validator:latest
をローカルで走らせて、 これをw3c_validators
のW3CValidators::NuValidator
から使う場合は、以下ようにuriを指定してnewすれば動きます。ちなみに、ローカルで走らせたNu validatorに切り替えたところ実行時間がだいぶ減りましたので、
w3c_validators
が遅いと感じている方はローカル実行を試すと良いかもしれません。慣れればコンテナを走らせるのはサクッと出来ますよ。まつもとゆきひろ氏のHotwire評
Rubyの生みの親・まつもとゆきひろ氏が、ベロシティ(つまり開発速度)の向上や維持のために生まれた技術なのではないかとHotwireを評している記事です。
全文はこちらから。
captureを使ってform_withのようにblockを活用したヘルパーメソッドを作る
背景
Railsのactionviewのヘルパー関数には、
form_with
のように、blockを活用して入れ子のHTML要素を記述できる便利なヘルパーメソッドがあります。 具体的には、以下のような記述(Railsガイドより引用)が出来るヘルパーメソッドです。blockを用いてHTML要素の入れ子を出力できるこのようなヘルパーメソッドの自作に関する話です。
作り方
actionviewの
capture
というヘルパーメソッドを用いると、form_with
のように、blockを使ってHTML要素の入れ子を記述できるヘルパーメソッドを自作できます。ちなみに、この
capture
は、Railsガイドを読んでも、RailsのAPIドキュメントを読んでも、いまいち使い道が分かっていなかったのですが、このような自作ヘルパーで使うというのが1つの使い道のようです。自作ヘルパーメソッドの実装例
自作ヘルパーメソッドの利用例
ERBから利用
出力結果
Rubyのコード内から利用
出力結果
Rubyのコード内からblockなしで利用
出力結果