---
title: "Debugging Rails apps from VS Code"
publication: "Ruby Weekly"
issue: 617
published_at: "2022-08-25"
canonical_url: "https://rubyweekly.com/issues/617"
---

Plus some news for Redis, Haml, and Postgres users, plus a Ruby2D tutorial. |        

#​617 — August 25, 2022 

[Read on the Web](https://rubyweekly.com/issues/617) 🇺🇦   

In case you missed my note in the last issue, we took a week off last week, but we're now back until Christmas.. just 122 days to go, not that we're counting ;-)
__
_Peter Cooper, your editor._  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/egrdzkzaaqib8lntkp8f.jpg)](https://github.com/ruby/syntax_suggest)  

[`syntax_suggest` Joins Ruby 3.2's Standard Library](https://github.com/ruby/syntax_suggest) — Formerly known as DeadEnd and focused on finding 'dangling' `end` keywords, [SyntaxSuggest](https://github.com/ruby/syntax_suggest) is now part of Ruby 3.2 ([🐦 as announced](https://mobile.twitter.com/hsbt/status/1560440968070848512) by Hiroshi Shibata on Twitter) (due in its final form in December) and will find missing keywords, missing pair characters, and other syntax problems. [This Ruby issue tracker thread](https://bugs.ruby-lang.org/issues/18159) tells the whole story. 

Ruby Project   

▶[Debugging Rails Apps with Visual Studio Code](https://blog.testdouble.com/talks/2022-08-22-debugging-ruby-on-rails-with-vscode/) — Ruby 3.1 included a new, powerful debugging gem and one benefit it introduced is being able to integrate with editors like VS Code. In this 20 minute screencast, Justin shows how to use `debug.gem` along with VS Code to work on a Rails 7 app. 

Justin Searls   [![\](https://copm.s3.amazonaws.com/42457458.png)](https://www.honeybadger.io/tour/cron-job-heartbeat-monitoring/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) 

[Is Your App’s Heart Beating? 💓](https://www.honeybadger.io/tour/cron-job-heartbeat-monitoring/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) — Remember when your monthly backup failed, or when those customers didn't get billed? How did you find out? Our heartbeat feature monitors critical tasks, so that you'll never miss another silent failure. **When Honeybadger is quiet, life is good**. 

Honeybadger sponsor   

[Requiring MFA for Popular Gem Maintainers](https://blog.rubygems.org/2022/08/15/requiring-mfa-on-popular-gems.html) — We first mentioned the RubyGems project’s intentions around [making the gem supply chain more secure](https://blog.rubygems.org/2022/06/13/making-packages-more-secure.html) a couple of months ago and multi factor authentication is now being enforced on owners of gems with over 180 million total downloads. This policy is sure to expand over time, so if you’re able to adopt MFA for your own RubyGems account, it’s worth looking into. 

Jenny Shen (RubyGems)   

**Quick Bits:** 

- Paweł Dąbrowski has made his [📕 Mastering CSV in Ruby](https://paweldabrowski.gumroad.com/l/csv-ruby) e-book available for free (or whatever fair price you choose).
- TIL, [via Reddit](https://www.reddit.com/r/ruby/comments/wtmzpv/apparently_pathname_overrides_the_division/), that `Pathname` offers a `/` method so you can do cool stuff like `view_path = Rails.root / 'app' / 'views'` for forming paths.
- The [▶️ latest episode of Remote Ruby](https://share.transistor.fm/s/39cbca6c) focuses on Hanami, dry-rb, and why they matter.
- Haml user? You might want to see [what's going on with Haml 6.0](https://github.com/haml/haml/releases/tag/v6.0.0.beta.1) – the first beta is out and it's _significantly_ faster.  

📖 Articles, Stories & Videos  

[Effective Queries with Rails and Postgres](https://www.honeybadger.io/blog/rails-postgresql-queries/) — If you’re not 'into' databases enough to be noodling on optimizing queries and tweaking schemas as a matter of course, this is for you. Pavel gives some tips on index types and basic principles to apply to keep things running quickly. 

Pavel Tkachenko   

[An Introduction to Ractors](https://blog.appsignal.com/2022/08/24/an-introduction-to-ractors-in-ruby.html) — [‘Ractors’](https://ruby-doc.org/core-3.0.0/Ractor.html) (once known as ‘guilds’) turned up in Ruby 3 as a new actor-based concurrency mechanism. If you’ve not played with them yet, this is a comprehensive introductory post where you learn how to create them and the rules for sharing (and _not_ sharing) objects. 

Abiodun Olowode (AppSignal Blog)   

[What Happens in Ruby on Class Instantiation](https://manny.codes/what-happens-on-ruby-class-instantiation/) — Did you know you could hack instantiation? I’ve never found a use for the `allocate` approach myself (though Gregory Brown [explains one here](https://stackoverflow.com/a/13275039/3951)) but it’s worth knowing about its existence just in case! 

Emmanuel Hayford   

[Migrating Postgres from Heroku: A Customer Study on Crunchy Bridge](https://www.crunchydata.com/case-studies/calibre?utm_source=cprb-brief-025) 

Crunchy Data sponsor   

[Validating YAML Files in Ruby](https://hsps.in/post/validating-yaml-files-in-ruby/) — A practical look at using [dry-schema.](https://github.com/dry-rb/dry-schema) 

Harisankar P S   

[Visitor Pattern in Ruby: Examples from Rubocop](https://wasabigeek.com/blog/visitor-pattern-in-ruby-rubocop/) — Learning about patterns is all well and good, but seeing how real code applies (and tweaks) a pattern can be much more instructive. 

Nick Wasabigeek   

[Thinking in Hotwire: Progressive Enhancement](https://boringrails.com/articles/thinking-in-hotwire-progressive-enhancement/) — Matt explains how your mental model for Hotwire should be progressive enhancement: start with the basics and then layer on Turbo Frames, Streams, and Stimulus as you build out. 

Matt Swanson   

[Rails 7's Beginless Range Support on In-/Ex-clusivity Validations](https://blog.saeloun.com/2022/08/18/rails-beginless-inclusion.html) — For example: `validates_inclusion_of :price, in: ..5000` 

Murtaza Bagwala   

[Fetching the 'Top n Per Group' with SQL Window Functions](https://bhserna.com/fetching-the-top-n-per-group-with-window-functions.html) 
Benito Serna  

🛠 Code & Tools  

[ActiveRecordExtended 3.0: Add Extended Postgres Functionality to Ruby and Rails Apps](https://github.com/GeorgeKaraszi/ActiveRecordExtended) — Introduces support for things like array value overlaps, network address manipulation, window functions, and some JSON and HSTORE operators into Active Record. 

George Protacio-Karaszi   

[Que 2.0: A Ruby Job Queue Using Postgres's Advisory Locks](https://github.com/que-rb/que) — A perfect use for Postgres’s built in advisory locking mechanism for more reliable job queue functionality. If you already use Que 1.x, note the [upgrade process necessary.](https://github.com/que-rb/que/blob/master/CHANGELOG.md#200beta1-2022-03-24) 

Chris Hanks   

[Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut](https://shortcut.com/?utm_source=cooperRubyWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter) — The best issue tracking software is one that software developers are actually happy to use. 

Shortcut (formerly Clubhouse.io) sponsor   

[Ruby 2D: A Simple Cross Platform 2D App Library](http://www.ruby2d.com/) — A mature project though still slightly under the radar and deserving of more attention – you get graphics, audio, and input device support, and [getting started](https://www.ruby2d.com/learn/get-started/) is very easy. [GitHub repo.](https://github.com/ruby2d/ruby2d) 

Tom Black et al.   

▶️ If you want to actually build a game, Mario Visic has [this neat Ruby2D screencast series](https://www.youtube.com/watch?v=uv0yVM0dq7M) to follow along with.  

[Sequenced 4.0: Generate Scoped Sequential IDs for Active Record Models](https://github.com/derrickreimer/sequenced) — The sequential ID is not a replacement for the usual primary key, but adds another way to retrieve the object without exposing the primary key. 

Derrick Reimer   

[JRuby 9.3.7.0 Released](https://www.jruby.org/2022/08/16/jruby-9-3-7-0.html) — The Ruby 2.6.x compatible JVM-based Ruby implementation. 

JRuby Team   

[Ruby OAuth 1.0: OAuth 1.0 Client and Server Library](https://github.com/oauth-xx/oauth-ruby) — _“Please upgrade to version 1.0. The only breaking change in 1.0 is dropping old Rubies.”_ 
Cook, Halff, Braendgaard, Boling, et al.   

[React on Rails 13.1: Bringing React, Webpack, and Rails Together with Webpacker](https://github.com/shakacode/react_on_rails) 
ShakaCode   

**⚡️ QUICK RELEASES:** 

[redis-rb 4.8](https://github.com/redis/redis-rb) – Redis client library. (Adds `sadd?` and `srem?`)
 [MockRedis 0.33](https://github.com/sds/mock_redis) – Mock Redis gem for testing against.
 [Resque 2.3](https://github.com/resque/resque) – Redis-backed background jobs.
 [Elasticsearch.rb 8.4](https://github.com/elastic/elasticsearch-ruby) – Ruby integrations for Elasticsearch.
 [Stripe Ruby 7.1](https://github.com/stripe/stripe-ruby) – Ruby library for the Stripe API.
 [StoreModel 1.2](https://github.com/DmitryTsepelev/store_model) – JSON-backed attributes in ActiveRecord-ish style.
 [Gruff 0.19](https://github.com/topfunky/gruff) – Long standing basic charting library.
 [Good Job 3.4.4](https://github.com/bensheldon/good_job) – Multithreaded, Postgres-based, ActiveJob backend.
 [Puma 5.6.5](https://github.com/puma/puma)
 [Sidekiq 6.5.5](https://github.com/mperham/sidekiq)
 [Hanami 2.0.0 beta 2](https://hanamirb.org/blog/2022/08/16/announcing-hanami-200beta2/)     

Jobs  

[Senior Ruby on Rails Backend Engineer - Integrations](https://apply.workable.com/leadfeeder/j/09A43DF4EA/) — Are you a self-starter looking to learn and grow? We are hiring around the world to strengthen our rapid growth. Join our journey. 
Leadfeeder   

[Senior Backend Engineer-Ruby on Rails (Remote-United States)](https://grnh.se/51d354183us) — Health tech startup looking for Senior ROR Engineers. Help us build a sustainable future for healthcare professionals. 
CareRev   

[Find Ruby Jobs Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired           

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom   

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
