rails

How Rails.env works with EnvironmentInquirer & StringInquirer (Example) | GoRails

How Rails.env works with EnvironmentInquirer & StringInquirer (Example) | GoRails をみていました。 自然すぎて、気にもしなかった、Rails.env.development? のコード解説です。中身はエレガントな実装になってました。 12分ほどの動画なのでさらっと見…

active_recordをrails以外で使う

ググるとActive Recordを単独で使う方法が出てきますが、手元のRails7系のActive Recordだと動かなかったので、調べながらやってみました。 結論 以下で動きました。 # Rakefile require "bundler/gem_tasks" require "bundler/setup" require "active_recor…

haml-lintでrubocopのlintをviewに対しても実行する

なんかlint色々整理したくなってきたので、続いてはhamlです。 sds/haml-lint を入れればokです。 おすすめポイントは、rubocopも見てくれます(もちろんindentなどviewに適用できないやつ以外)。 個人的には 昔記事に書いたslim-lint同様、お仕事でも使い…

Stimulusでドラッグ&ドロップ時に画像のアップロードを行う

はてなフォトっぽいやつを実装してみます。 やり方 view formのinput file は非表示にしておきます(d-noneスタイル)。 Stimulusのcontrollerは file-drop-controller というものを用意し、ドラッグ&ドロップの操作はここで行うようにします。 click時の操…

cropper.jsを使ってActiveStorageで画像アップロード時に切り抜きを行う

ググってもあんまり出てこなかったのでメモを残しておきます。 JSは Cropper.js を利用しています。ライセンスはMITです。 こんな感じ やり方 cropper.jsを使って画像を表示し、保存ボタン押下時に切り抜くための情報をRailsに送ります。 Rails側では保存前…

RailsのHotwireでCSSアニメーションさせる方法(登録処理もTurbo/Stimlusで実装)

昨日の続きです。 RailsのTurboでAjaxで要素を削除したときにCSSアニメーションさせる方法2(Stimlus化) 画像の登録もTurbo/Stimulusで実施してなかったので修正してみます。 やってみる css fade-in用を追加。 .fade-in { animation: fade-in .4s linear; …

RailsのTurboでAjaxで要素を削除したときにCSSアニメーションさせる方法2(Stimlus化)

RailsのTurboでAjaxで要素を追加したときにCSSアニメーションさせる方法 では、application.js に記載していましたが、これをStimulus化して利用しやすくしてみます。 やってみる stream_animations_controller.js import { Controller } from "@hotwired/st…

RailsのTurboでAjaxで要素を削除したときにCSSアニメーションさせる方法

Ajaxでデータ追加・削除するのにRailsのTurbo便利ですよね。 でも、CSSアニメーションが効かなくて困ってました。 Turbo以前 image-wrapperクラス以下に画像とxボタンを配置します。 # haml .image-wrapper.position-relative = image_tag image = link_to u…

今更だけどRailsの基本認証について

手元で作ったRailsアプリを軽くデプロイして確認したかったので、基本認証入れて確認しようとしていましたが、 似たようなメソッドがいくつもあってどれだっけとなったり、良くない実装が検索結果に出てきたので、改めて整理しておきます。 ググると 以下の…

Advent Calendar Rankingに人気のはてブを表示する機能を追加してみた

個人的に見れると嬉しい気がしたので追加してみた。 人気のはてブ(hatenaスターの多いブックマーク)を取れるAPIを利用して表示。 実装は、rails-ujsを利用して非同期で取得。負荷対策としてはサーバーサイドでcacheする程度で軽く実装してみた。 Turbo使う…

rails new 時にDockerfileが追加されるようになる

rails commit log流し読み(2022/12/20) - なるようになるブログ を見ていたら、 なんとrails new 時にDockerfileが追加されるようになっていました。 rails newで新規アプリケーション作成時にDocker関連のファイル (Dockerfile、.dockerignore、bin/docker-…

Haml6リリースされてました

以下の対応中に気づいたのですが、Haml 6が出ていました。 Advent Calendar Rankingサイトを2022年度版に対応 - rochefort's blog Hamlは遅いので、個人で使うときはHamlitを好んで使っていたのですが、 HamlがHamlitに置き換えられる ということが行われて…

Advent Calendar Rankingサイトを2022年度版に対応

毎年作ってる、qiitaのadvent calenderのhatebuランキングサイト を2022年度に対応。 HTMLの構成はあまり変わっておらずサクッと対応できた。 ついでにRuby、Railsの更新も実施。 ざっと眺めていて気づいたのだが、Elixirのカレンダー が何故か15個も立ち上…

さよならWebpacker

Rails7で importmap-rails、jsbundling-rails という新しいフロントエンドの仕組みが取り入れられました。 ここでは詳細は省きますが、以下の3つの技術的な背景があり、これまで利用してきたWebpackerを利用する必要がなくなっていました。 ES6 : IEのサポー…

PostgreSQLからsqliteの移行をRailsを使って行う

この記事は Ruby on Railsのカレンダー | Advent Calendar 2021 - Qiita 18日目の記事です。 昨日に引き続き、空いていたので参加してみました。 背景 昨日、Advent Calender Ranking 2021 に New RelicをRailsアプリにinstallしたところ、DB部分で速度が出…

Advent Calendar Ranking 2021リリース(Rails7対応済)

この記事は Ruby on Railsのカレンダー | Advent Calendar 2021 - Qiita 17日目の記事です。 さっき見たら、スカスカだったので参加してみました。 Rails7出たのにさびれていて悲しい。Rails peopleはどこに行ったんだ。 作ったもの Advent Calendarをhatebu…

Rails 6.0.4 has been released

Rails 6.0.4 has been released | Riding Rails Rails6.0.4 がリリースされました。 これみて、あれ?なぜ6.0系だけなんだと疑問に思って少し調べてみました。 Action Packの変更点を見ると Release 6.0.4 · rails/rails · GitHub Accept base64_urlsafe CSR…

Rails versions 6.1.3.2, 6.0.3.7, 5.2.4.6, and 5.2.6 have been released!

日本はGW中なのにRailsのsecurity releaseがありました。 早めにリリースしておくのが良さそうです。 Rails versions 6.1.3.2, 6.0.3.7, 5.2.4.6, and 5.2.6 have been released! | Riding Rails ざっくり 該当のCVEは4つもあります。 [CVE-2021-22902] Poss…

Advent Calender Rankingを作ってみた

近年qiitaのAdvent Calendarほとんど見てなかったのですが、久しぶりに見ていたら、 少しfilterかけて見たいなぁと思い、scrapeしてhatena bookmarkの数を調べて、 一覧で出してみました。 Advent Calender Ranking https://advent-ranking.rochefort.dev/ …

Railsでの定数定義

これまでは、config/initializers 以下に定数用moduleを置いていました。 config/initializers ってアプリの初期化するためのが目的なので、微妙だなとはずっと思っていたのですが、 惰性でずっとこのようにしていました。 最近は 以下のようにしています。 …

Semantic UIをRails + Webpackerで使う

Semantic UI css frameworkで使ったことないものを利用してみようと思って、installしたら少し嵌ってしまったのでメモ。 ちなみに、当初はTailwind CSS を使ってみようと思ったのですが、こっちはどうも慣れないのとclassがhtmlにつきまくってメンテしづらそ…

(Rails)i18n-tasksのご紹介

昨日、RailsのSecurity UpdateがReleaseされました。 Rails 5.2.4.4 and 6.0.3.3 have been released | Riding Rails あまり影響がある人は少ないかもしれませんが、こちらで詳しく解説されてます。 Rails: セキュリティアップデート5.2.4.4と6.0.3.3がリリ…

Everyday Rails - RSpecによるRailsテスト入門 読了

Everyday Rails… Aaron Sumner 著 et al. [Leanpub PDF/iPad/Kindle] 結構昔に買って、積読状態でしたが、先ほど読み終えました。 仕事で久しぶりにRails触るということもあり、ちょっとずつ読み進めていました。 1章あたり、じっくり読んで写経しても1〜2時…

slim-lintが良い

最近仕事でよくslimを使うのですが、コードレビュー時に細かい指摘をするのがちょいちょいあって、なんとかならんかと調べてみたら sds/slim-lint: Configurable tool for analyzing Slim templates というrubygemがあり、これの出来がとても良かったのでご…

Rails Templateを使ってみる

最近なんか作ろうかと思ってから、作業開始するまでに寄り道してしまうことが多いような気がするので、開発効率上げるために、以前から利用してみたかったRails Templateを使ってみた。 公式 Rails アプリケーションのテンプレート - Railsガイド これ roche…

Rails6.0.3.2 has been released!

Rails 6.0.3.2 has been released! | Riding Rails security updateがreleaseされてました。 珍しい脆弱性だったのでご紹介。 急いであげる必要はないような脆弱性ですが、対応したい人は上げておきましょう。 内容 ここに書かれてます。 [CVE-2020-8185] Un…

Everyday Rails - RSpecによるRailsテスト入門 chapter9

最近、積読状態だった以下を読んでいます。 RSpec学ぶにはなかなか良い本だと思います。 9章の内容が良かったのでご紹介。 leanpub.com 9. 速くテストを書き、速いテストを書く aggregate_failures aggregate_failures を使えば、事前処理が同じようなitをま…

(rails)いつの間にかannotateが動かなくなっていた

ctran/annotate_models: Annotate Rails classes with schema and routes info こんな感じで、migrateのタイミングで自動的にモデル関連ファイルにannotate(コメント)を追加してくれるgemです。 これがいつの間にか動かなくなっていました。 # == Schema I…

Ruby on Rails 6 エンジニア養成読本 読了

最近RubyやRailsからは離れていたので、私にはおさらい含めて新しい機能を知れるちょうど良い内容でした。 個人的に良かった点 Rails6新機能 ActionText、Action Mailbox、zeitwerk(詳細ではないですが、触れられています)など概要知れて良いです。 Action…

Passenger5系でRailsのログローテートを行う

Railsのログローテト、Rails側でやるのか logrotated でやるのかというざっくり2パターンありますが、 個人的にはlogrotatedでやることが多いです。 久しぶりにPassengerを触ったので、最近のPassengerではどうするのが良いのだろうかと調べてみました。 公…