おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

WNoteのバージョンアップ

先週、WNoteのバージョンアップをした。前回のアップロードでは、Rrailsのバージョンは5で、Bootstrapも3だった。それが、現在はRailsは7でBootstrapは5になっている。 バージョンアップの作業は大体一週間ぐらいで終わった。作業の多くはBootstrapの修正だった。

Railsの主な変更は2つあって、HTMLのInputタグを生成するメソッドがform_forform_tagからform_withに変わったことである。古いメソッドも使えるが非推奨となっている。その仕組みは変わっていないので 少しの変更のみで、大した作業ではない。 もう一つはデータをdeleteする方法が変わった。以前はlink_toメソッドの中で、method: :deleteを指定して、HTTPプロトコルのメソッドにDELETEを指定するのだった。(注:ブラウザでDELETEメソッドをサポートしていない場合はPOSTメソッドで代用)。それが、新しい方法では、Turboが使われていて、具体的にはlink_toメソッドに、data: {turbo_method: :delete, turbo_confirm: "Are you sure?"}などと書き込む。この部分はHTMLのInputタグのdata-turbo-method属性になる。data-*という属性はユーザ定義属性で、RailsではJavascriptで処理をする。Javascriptがオンになっていないと機能しない。また、それを受け取ったコントローラーでは、destroyメソッド中で削除処理後のリダイレクト時にstatus: :see_otherとHTTPステータスを変えなくてはいけない。それをしないとひどいことになるらしい。

その他にassetsの取り扱いが変わってきている。しかし、Sprocketsもまだ使えるので、ここについては問題はない。ただ、assetとして使っているBootstrapとjQuery-UIは、gemを使わず、直接それぞれのウェブサイトからダウンロードしたスクリプトをvendorフォルダ下に配置した。とくに、jQuery-UIの現バージョンが1.3.1なのだが、jQuery-railsのgemは1.2.1しかサポートしていない。これがgemを採用しなかった理由である。JavaScript の世界は以前と大きく変わってきたようで、iQuery UIは開発が終わりメンテナンスモードになっている。Web の技術はどんどん新しくなっていくので、このような栄枯盛衰があるということなのだろう。

Railsのassetの取り扱いは、次期バージョンではSprocketsが非推奨になるかもしれない(あくまで予想だが)。