Sometimes I ran across a GitHub merge request of a gem where it was not completely obvious in which version...
In Rails 5+ you can access a helper from a controller using the helpers method: # Inside a controller action
To retrieve only unique combinations of the selected attributes: You can omit rows, where all selected columns are equal with...
Rails includes milliseconds in Time / DateTime objects when rendering them as JSON: JSON.parse(User.last.to_json)['created_at'] #=> "2001-01-01...
Sometimes, the rails dev server doesn't terminate properly. This can for example happen when the dev server runs in...
When you use the :as option to map a power to a controller method you can now override the generated...
The linked article shows how metapogramming macros can use define_method to make a method that can be overridden with...
After upgrading to Rails 6.1.7.2 one of our apps printed a wall of warnings while booting: /var/www/app/shared/bundle/ruby/2.6.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:68: warning: already...
Let's assume that we have a model Movie that registers a callback function when a new instance of Movie...
I recently enjoyed debugging a Cucumber step that tried to be retryable using a patiently block: Then /^"([^"]*)" should( not)? be...
Using ActiveRecord's #signed_id and .find_signed methods you can create URLs that expire after some time. No conditionals...
When an object is created / updated, various callbacks are executed in this order: before_validation after_validation before_save
Bundler so far ignored the version specified under BUNDLED_WITH in the Gemfile.lock. This had two annoying consequences:
TLDR if you define a equality method for a class you must also implement def hash. Ruby has a lot...
Timecop is a great gem to set the current time in tests. However, it is easy to introduce flakyness to...
In a Jasmine spec you want to spy on a function that is imported by the code under test. This...
You have some SVG files you want to use as icons on your website. How would you embed them?
In esbuild, you usually import other files using relative paths: import './some-related-module' import `../../utils/some-utility-module` import `../../../css/some-css.sass` This is totally fine...
tl;dr You should decouple migrations from models by embedding models into the migration. To use STI in this scenario...
As a developer you may have many tools watching your project for changes: Your IDE, Webpack, Guard, etc. This is...
Jasmine specs for the frontend often need some DOM elements to work with. Because creating them is such a common...
If you're frequently switching between projects, you might be annoyed by RubyMines behavior of opening the last project on...
This can happen with a very simple model: class Note has_many :attachments end Everything looks normal: Note.all.to_a.size # => 8 Note.all.ids.size...
Large Rails projects tend to define multiple custom ways to format Dates or DateTimes. This often leads to duplicated format...