Home Software Libraries Python Jinja2 用途はHTML出力に限らず・・・ yiskw @yiskw 2023/03/18 14:05 HTMLに限らず、様々なドキュメントのレンダリングに利用できる。 私はCソースコードの出力に使っています。
Home Software Libraries JavaScript qart.js qart.jsで作成したQRコードを紙に印刷して使う場合のノウハウ @wakairo 2023/02/17 22:53 QRコードのセル数を少なくするために(つまり、印刷されたときの1つのセルを大きくするために)Versionはできるだけ小さく、また、くっきりと印刷するためにSizeは大きめに設定すると良いようです。 ちなみに、合成したQRコードを家庭用プリンタで縦横4cm弱で印刷しましたが、Versionを10に設定した場合はときどきしか認識に成功しませんでした。そこで、Versionを4に設定したところ、認識率が大分改善しました。
Home Software Libraries Ruby rails ファイル名とクラス名の対応関係などが命名規則に従っているかのチェック方法 @wakairo 2023/02/08 21:51 最終更新 2023/02/08 21:52 Railsでは、自動で定数の読み込みと再読み込みが行われます。 この自動システムをきちんと動作させるには、ファイルパス・ファイル名とモジュール構造・クラス名を命名規則に従って対応させる必要があります。 Railsガイドによれば、 以下のコマンドを実行することでこの命名規則に従っているかの確認を行えます。 bin/rails zeitwerk:check このコマンドの実行結果の末尾に「All is good!」が表示されれば命名規則は守られています。
Home Software Libraries Ruby zeitwerk Rails7以降はZeitwerkに完全移行 @wakairo 2023/02/08 11:13 Rails 6でZeitwerkが導入され、Rails 7でclassicと呼ばれる旧来のオートローダーは廃止されました。 以下は、 https://railsguides.jp/classic_to_zeitwerk_howto.html からの引用です。 Railsは最初期からRails 5まで、Active Supportで実装されたオートローダーを用いていました。このオートローダーはclassicと呼ばれ、Rails 6.xでは引き続き利用可能です。classicオートローダーはRails 7で廃止されました。 Rails 6から、より優れた新しいオートロード方法がRailsに搭載されました。これはZeitwerkというgemに一任されています。これがzeitwerkモードです。デフォルトでは、Railsフレームワーク6.0および6.1の読み込みはzeitwerkモードで実行され、Rails 7で利用できるのはzeitwerkモードのみとなります。
Home Software Libraries Ruby actionpack redirect_backよりもredirect_back_or_toを使った方が良さそう @wakairo 2023/02/06 23:33 以下のコードから分かるとおり、redirect_backはredirect_back_or_toをラップしているだけです。 https://github.com/rails/rails/blob/v7.0.4/actionpack/lib/action_controller/metal/redirecting.rb#L96 普通はfallback_locationを指定する必要があるはずですので、第1引数にfallback_locationを指定してredirect_back_or_toを呼び出した方が素直のように思います。
Home Software Libraries Ruby activerecord unscopeはscope系以外の条件も外す @wakairo 2023/02/06 10:42 最終更新 2023/02/06 11:03 RailsのActive Recordには、scopeやdefault_scopeという機能があり、SQLクエリの条件を指定してあらかじめ付けておくことが可能です。 unscopeやunscopedは、これらのscope系で付けた条件を外すことが出来ます。 ただ、注意点として、scope系以外で付けた条件も外してしまいます。 以下に例を示します。 irb(main):001:0> puts User.where(id: 1).all.to_sql SELECT "users".* FROM "users" WHERE "users"."id" = 1 => nil irb(main):002:0> puts User.where(id: 1).unscope(:where).all.to_sql SELECT "users".* FROM "users" => nil irb(main):003:0> puts User.where(id: 1).unscoped.all.to_sql SELECT "users".* FROM "users" => nil unscopeやunscopedが、直前のwhere句で指定した条件を外していることが確認できます。 確認した環境 Rails 7.0.4 参考 Railsガイド:Active Record クエリインターフェイス:9 条件を上書きする
Home Software Libraries JavaScript qart.js すぐに合成が可能 @wakairo 2023/02/03 11:48 最終更新 2023/02/08 11:51 GitHubのReadmeで紹介されている以下のリンク先で、すぐにこのライブラリを利用してQRコードと画像の合成が出来て便利です。 https://kciter.so/qart.js/ インストールしたりコードを書いたりしなくても利用でき、すぐに試せるのは嬉しいです。
用途はHTML出力に限らず・・・
HTMLに限らず、様々なドキュメントのレンダリングに利用できる。 私はCソースコードの出力に使っています。
qart.jsで作成したQRコードを紙に印刷して使う場合のノウハウ
QRコードのセル数を少なくするために(つまり、印刷されたときの1つのセルを大きくするために)Versionはできるだけ小さく、また、くっきりと印刷するためにSizeは大きめに設定すると良いようです。 ちなみに、合成したQRコードを家庭用プリンタで縦横4cm弱で印刷しましたが、Versionを10に設定した場合はときどきしか認識に成功しませんでした。そこで、Versionを4に設定したところ、認識率が大分改善しました。
ファイル名とクラス名の対応関係などが命名規則に従っているかのチェック方法
Railsでは、自動で定数の読み込みと再読み込みが行われます。 この自動システムをきちんと動作させるには、ファイルパス・ファイル名とモジュール構造・クラス名を命名規則に従って対応させる必要があります。
Railsガイドによれば、 以下のコマンドを実行することでこの命名規則に従っているかの確認を行えます。
このコマンドの実行結果の末尾に「All is good!」が表示されれば命名規則は守られています。
Rails7以降はZeitwerkに完全移行
Rails 6でZeitwerkが導入され、Rails 7でclassicと呼ばれる旧来のオートローダーは廃止されました。
以下は、 https://railsguides.jp/classic_to_zeitwerk_howto.html からの引用です。
redirect_backよりもredirect_back_or_toを使った方が良さそう
以下のコードから分かるとおり、
redirect_back
はredirect_back_or_to
をラップしているだけです。https://github.com/rails/rails/blob/v7.0.4/actionpack/lib/action_controller/metal/redirecting.rb#L96
普通は
fallback_location
を指定する必要があるはずですので、第1引数にfallback_location
を指定してredirect_back_or_to
を呼び出した方が素直のように思います。unscopeはscope系以外の条件も外す
RailsのActive Recordには、
scope
やdefault_scope
という機能があり、SQLクエリの条件を指定してあらかじめ付けておくことが可能です。unscope
やunscoped
は、これらのscope系で付けた条件を外すことが出来ます。ただ、注意点として、scope系以外で付けた条件も外してしまいます。
以下に例を示します。
unscope
やunscoped
が、直前のwhere
句で指定した条件を外していることが確認できます。確認した環境
参考
すぐに合成が可能
GitHubのReadmeで紹介されている以下のリンク先で、すぐにこのライブラリを利用してQRコードと画像の合成が出来て便利です。
https://kciter.so/qart.js/
インストールしたりコードを書いたりしなくても利用でき、すぐに試せるのは嬉しいです。