In modern default RSpec configurations, your tests are usually run in random order. This helps to detect "flickering" tests that...
When you need to find out in which kind of spec you are during run-time, it's definitely possible...
Note Using rem only ever makes sense when the root font size is dynamic, i.e. you leave control to the...
So you added a new callback to your model that (e.g.) caches some data when it is saved. Now you...
Regular expressions in Javascript are represented by a RegExp object. There also is a regex literal as in many other...
For performance improvements (and to remove the need for eager loading), the ActsAsTaggableOn gem supports caching your tag lists directly...
...other methods within the Method class are useful for advanced metaprogramming, though this is beyond the scope of this card. Also see Ruby: Finding where a method is defined
...many :taggings, dependent: :destroy + has_many :posts, through: :taggings +end app/models/tagging.rb +class Tagging < ApplicationRecord + belongs_to :post + belongs_to :tag + + validates :post, uniqueness: { scope: :tag } +end app/controllers/posts_controller.rb def post_params...
...many :taggings, dependent: :destroy + has_many :posts, through: :taggings +end app/models/tagging.rb +class Tagging < ApplicationRecord + belongs_to :post + belongs_to :tag + + validates :post, uniqueness: { scope: :tag } +end app/controllers/posts_controller.rb def new
Sometime we've seen this error when executing e.g. bundle exec rake asset:precompile: double free or corruption (out)
...optional on association declarations with a symbol, lambda or proc. Explanation Association declarations like belongs_to support the option optional. This option does not support symbols, lambdas or procs. If...
...the presence of the associated object won't be validated. Example Bad class Note belongs_to :owner, optional: :draft? end note = Note.new(state: 'created', owner: nil) note.valid? # => true Good
It's quite confusing how many external displays are usable with a MacBook that uses an M1 or M2 Chip...
RSpec lets you define the arguments with which you expect a method to be invoked: subject.should_receive(:say).with('hello...
track down warnings and to see failing specs immediately or to get an overview of the core...
...by doing date on the shell. E.g. our main application servers are running on Berlin (CEST) time, but this will differ on other machines. Rails also assumes that datetime fields...
...Rails 2, open config/environment.rb and comment or remove the config.time_zone line: # config.time_zone = 'Berlin' In order to disable time zone conversion in Rails 3 or newer, open config/application.rb and...
When accepting GIF images, you will also accept animated GIFs. Resizing them can be a time-consuming task and will...
...applications is to make the observe frequency low enough that out-of-order responses become unlikely enough. Try to poll the query field for changes every 0.75 seconds or longer...
When you use a belongs_to or has_many macro you might be surprised that the methods that it generates does not override a method with the same name. Take...
class Project < ActiveRecord::Base def user "foo" end belongs_to :user end Project.new.user still returns "foo". The reason for this is that what belongs_to does is actually...
When testing your command line application with Aruba, you might need to stub out other binaries you don't want...
When deploying a Rails application that is using Webpacker and Capistrano, there are a few configuration tweaks that optimize the...
Reacting on a class getting added can be done with a mutation observer. Example: const items = document.querySelectorAll('.item') const expectedClass...
Ubuntu has a package mysql-sandbox that lets you install multiple MySQL versions into your user home: Install mysql-sandbox...
...HTML elements can automatically start playing when the autoplay attribute is set on them. Except for when they can not...
When you do a bitwise copy using the dd tool you will not see any output until it completes or...
Just like Ruby Gems tag their version releases to the corresponding Git commit, it can be helpful to track production...