RailsでもRubyのStringクラスに翻訳機能をつけてしまった(Rails 7でも対応)
何ができるようになった?
'Maybe I should just write articles on Qiita in English and translate them in Rails console using ActiveTranslateSelf'.translate_to_ja
# "英語でQiitaの記事を書いて、ActiveTranslateSelfを使ってRailsのコンソールで翻訳すればいいのかもしれません。"
'Maybe I should just write articles on Qiita in English and translate them in Rails console using ActiveTranslateSelf'.translate_to_ja
# "英語でQiitaの記事を書いて、ActiveTranslateSelfを使ってRailsのコンソールで翻訳すればいいのかもしれません。"
Rubyの文字列をRailsのコンソールの中で訳せるようになっています!
基本的にRailsの中であればどこでも使えます!Callback設置して、Sidekiqで翻訳のジョブ設置してもよし、翻訳ファイルの更新スクリプトの中で使ってもよし!
Rails Engineとは?
Railsの中にあるRailsのアプリ、ということで言えばいいでしょうか。
今回はRailsのConfigとLoadHookを使いたかったので、Engineとして作りました。
コマンドはいかです
$ rails plugin new ActiveTranslateSelf --mountable
mountable
というオプションがないとRailtieになります。
ハマったところ
Engineのコンフィグレーションについていろいろ読んでいて、
何回試してもうまくいかない・・・ということでしたが、
今回はDeepLの設定をInitializerを読み込んでから読み込まないといけないというところで積んでいました。
あとでActiveRecordにもちょっとした機能いれようかと思っているため
ActiveSupport.on_load(:active_record) do
end
で行きました。このあたりはちゃんとRailsの実装を見て勉強しないといけないと思っています。
Rails 7対応かどうか確認しよう!
RailsのEdgeだとすでにRails 7のAlphaが使えます!
これを以下のようにGemfileに記載すれば、今でも試せます
gem 'rails', github: 'rails/rails', branch: 'main'
さすがはブランチ名もMainになっていますね。
個人的にすごいといころは、ActiveRecord::Encryptionがすでに使えるということかと思います。
Railsエンジニアの憧れとしてもEdgeで走っているプロジェクト、というのはあるかと思います。
(Github, Shopifyはそれを実践しています)
Github Actionsで簡単にいろんなRailsのバージョンに対してテストも走らせて、すごく便利です。
ただしRails 5.2はRuby 3.0非対応なため、そこはもう5.2テスト対象として落とすべきか悩ましいところです。
strategy:
matrix:
ruby: [2.7]
bundler: [default]
gemfile:
- rails_5.2
- rails_6.0
- rails_6.1
- rails_master
このようにStrategyを指定するとテストもラクチンです!
Author And Source
この問題について(RailsでもRubyのStringクラスに翻訳機能をつけてしまった(Rails 7でも対応)), 我々は、より多くの情報をここで見つけました https://qiita.com/sampokuokkanen/items/25bc7ba86da4402cce4a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .