diff --git a/README.md b/README.md index f4c1434..cbbdb28 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186). -_1366 TILs and counting..._ +_1367 TILs and counting..._ --- @@ -903,6 +903,7 @@ _1366 TILs and counting..._ - [Schedule Sidekiq Jobs Out Into The Future](rails/schedule-sidekiq-jobs-out-into-the-future.md) - [Secure Passwords With Rails And Bcrypt](rails/secure-passwords-with-rails-and-bcrypt.md) - [Select A Select By Selector](rails/select-a-select-by-selector.md) +- [Select A Specific Rails Version To Install](rails/select-a-specific-rails-version-to-install.md) - [Select Value For SQL Counts](rails/select-value-for-sql-counts.md) - [Serialize With fast_jsonapi In A Rails App](rails/serialize-with-fast-jsonapi-in-a-rails-app.md) - [Set A Timestamp Field To The Current Time](rails/set-a-timestamp-field-to-the-current-time.md) diff --git a/rails/select-a-specific-rails-version-to-install.md b/rails/select-a-specific-rails-version-to-install.md new file mode 100644 index 0000000..9b6f852 --- /dev/null +++ b/rails/select-a-specific-rails-version-to-install.md @@ -0,0 +1,28 @@ +# Select A Specific Rails Version To Install + +We can install a specific Rails version with `gem` using the version flag. + +```bash +$ gem install rails --version 7.1.3 +``` + +That's only if we already know which specific version we are intending to +install. + +A better version of this would show us a list of available version and let us +select the one we want. + +We can do this by fetching all remote Rails versions with `gem`, splitting that +output up into a single version per line, and then piping that to an `fzf` +prompt. The version we navigate to and select will be fed into the `gem +install` command. + +```bash +gem install rails --version $( + gem list rails --exact --remote --all \ + | sed -n 's/.*(\([^)]*\)).*/\1/p' \ + | tr ',' '\n' \ + | sed 's/^ //' \ + | fzf +) +```