RailsConf 2021 -- Implicit to Explicit: Decoding Ruby's Magical Syntax
Does a Rails model or config file seem like a magical syntax? Or can you read any Ruby code and understand it as the interpreter does?
Maximizing Code Quality with Rails Pre-Commit and Pre-Push Hooks
By utilizing pre-commit and pre-push hooks, developers can automate various checks and tasks that contribute to maintaining high code quality standards.
Streamlined Syntax - Unveiling the Power of Slim Template Language
Slim is a templating language designed to streamline the view syntax to its fundamental elements while avoiding cryptic complexity.
Level Up Your Ruby Code with Draper Decorators
Draper provides a simple, elegant way to separate presentation and model logic in Rails applications.
Keeping your database migrations strong with strong_migrations gem
Enhance the reliability and safety of your migration tasks, reducing the risk of data loss or corruption using strong_migrations.
Supercharge your Rails App with Active Admin
Active Admin is a gem that simplifies the creation of administrative interfaces for your Ruby on Rails applications.
Unlocking SEO-Friendly URLs with FriendlyID Gem
FriendlyId is a Ruby gem that extends Active Record functionality. It lets you create custom URLs for your models using text strings instead of numeric IDs.
Boost Your Ruby on Rails Application Performance with Bullet Gem
Ruby on Rails developers know N + 1 queries are performance killers. Bullet helps you spot them in your code before they become bottlenecks.
Simplify Your Ruby Application Configuration with Figaro Gem
Figaro simplifies the process of securely storing sensitive information.
Debugging Made Easy with Pry
The Pry gem offers a robust alternative to the standard IRB shell for Ruby. Easily configure your Rails app to utilize Pry for improved debugging and development efficiency.
Empower Your Rails Application with CanCanCan Gem
With CanCanCan streamlines permission management for your Rails app.
Comprehensive Guide to SimpleCov Gem
SimpleCov is a gem used for code coverage analysis in Ruby projects, providing insights into how thoroughly the codebase is being tested.
Mastering Authorization in Rails with Pundit
Discover how Pundit promotes a clear separation of concerns, allowing you to focus on building features without worrying about intricate permission checks.
Exploring the FFaker Gem - A Comprehensive Guide
FFaker simplifies the process of generating fake data, allowing you to focus on what truly matters.
Streamlining Rails Development with GitHub CI/CD
With Rails 8, GitHub CI files will be added by default to the new applications.
RuboCop comes built-in with Rails 8.0
Wondering what RuboCop is? Starting with Rails 8.0, it's included by default to automatically check your code for quality and adherence to coding standards.
Rails 8.0 adds Brakeman
With Rails 8.0, brakeman will be added by default to your application, enhancing its security.
Rails 8 adds explain support to ActiveRecord::Relation
With Rails 8, the object returned by explain now responds to pluck, first, last, average, count, maximum, minimum, and sum.
Rails 8.0 adds allow_browser to set minimum versions for application
Rails 8.0 adds the allow_browser method to specify the browser versions, allowing access to all actions.
Rails 7.1 adds support for MessagePack as a Message Serializer
Rails 7.1 welcomes MessagePack, a binary data format delivering significant payload size reduction and performance improvements over traditional serializers like JSON.
Headless Chrome Ruby - Conquering Automation with Ferrum
Ferrum streamlines Chrome automation in Ruby by establishing a WebSocket connection and elegantly exposing the Chrome DevTools Protocol through a well-crafted API.
Using GraphQL in Ruby on Rails
GraphQL (flexible, strong typing) empowers front-end devs to query Rails data without much backend fuss.
How to upgrade Rails 6.1 to 7.0
A step-by-step guide to upgrading Rails from 6.1 to 7.0.
Rails 8.0 adds rate limiting to ActionController
Rails 8.0 introduces built-in rate-limiting capabilities for controller actions, allowing you to fine-tune user access and prevent abuse.
Upgrading Rails 5.2 to 6
Upgrading to Rails 6 made easy, learn the steps and discover crucial tips for a smooth transition.
Rails 7.1 adds path_params option to url_for for flexible URL generation
When using url_for in Rails 7.1, leverage the new path_params option to craft URLs with specific path parameters precisely.
Conquering Code Clutter - A Guide to Rails Concerns
In Ruby on Rails, ActiveSupport's Concern is a module that allows you to encapsulate shared behaviour and code in a modular and reusable way.
Ready, Set, Deploy! Rails 7.1 Gets Docker Support
With Rails 7.1, Dockerfiles make deploying apps to production environments a breeze with Docker.
Rails 7.1 adds ActiveRecord regroup
With Rails 7.1, ActiveRecord regroup allows you to change a previously set group statement.
Rails 7.1 empowers the resetting of singular associations
Resetting singular associations unloads the cached associate record and causes the subsequent access to query it from the database.
Rails 7.1 ActiveStorage's TransformJob cleverly pre-processes videos and PDFs for smooth previews
Rails 7.1 ActiveStorage's TransformJob expands its pre-processing power to videos and PDFs, enriching preview possibilities beyond images.
Rails 7.1 allows ActiveRecord reselect to accept a hash
With Rails 7.1, developers can now use intuitive hash syntax with the reselect method for more transparent and flexible database queries.
Rails introduce powerful ErrorReporter#unexpected for controlled error reporting
Rails offers a game-changer ErrorReporter#unexpected for developers facing tricky precondition violations.
Rails 7.1 introduces a new option to exclude all custom methods generated by the ActiveRecord::Enum
Rails 7.1 lets you turn off the creation of custom methods for enum attributes, giving you more control over your models.
Rails 7.1 allows using aliased attributes with insert_all and upsert_all
As of Rails 7.1, you can utilize aliased attributes when employing the insert_all and upsert_all methods.
Rails 7.1 adds ActiveRecord::Base::generates_token_for
In Rails 7.1, ActiveRecord::Base::generates_token_for provides a convenient way to generate and validate tokens for various use cases in Rails applications.
Rails 7.1 allows passing options to ActiveRecord explain
Rails 7.1's explain method now accepts options for more detailed query insights.
Rails 7.1 adds support for multiple-column ordering in Activerecord
Rails 7.1 supports multiple-column ordering for find_each, find_in_batches and in_batches.
Rails 7.1 adds the ability to autoload the lib directory
Rails 7.1 introduces the autoload lib method and allows one to pass the option :ignore to avoid subdirectories that should not be autoloaded.
An introduction to test suite optimization in Ruby
Going over some common pitfalls that might be making your tests slower than they need to be, and what to do about them.
Flaky Visual Regression Tests, and what to do about them
Let's go over some tips about what to do when your visual regression tests are failing intermittently for no apparent reason.
Rails 7.1 limits the maximum length of auto-generated index names
Rails 7.1 defines a 62-byte maximum limit for auto-generated index names.
Rails 7.1 adds an option to extract the sample rate of an audio file
In Rails 7.1, leverage ActiveStorage::AudioAnalyzer to extract an audio file's sample rate, bit rate, and duration.
Rails 7.1 allows ErrorReporter to handle several error classes
With Rails 7.1, you can use the Rails.error.handle method to deal with multiple error classes.
Rails 7.1 adds support for infinite ranges for LengthValidators
With Rails 7.1, you can pass an infinite range to the :in/:with options of length validators.
Rails 7.1 expands its support for ActiveRecord asynchronous queries
With Rails 7.1, you can execute the aggregate queries asynchronously.
Rails 7.1 raises an error on generating model attributes with dangerous name
In Rails 7.1, generating a model with attributes named keywords like hash or save would raise an error.
Rails 7.1 adds validation to enums
With Rails 7.1, if you want to validate the enum values before saving, use the option `:validate`.
Rails 7.1 allows matching exception messages to assert_raises assertion
In Rails 7.1, you can now use a single assert_raises assertion to match both the exception class and the message.
Rails 7.1 adds Object#with method
Rails 7.1 implements object#with as a method that allows you to set and restore public attributes around a block.
Rails 7.1 allows attaching file or pathname to has_one_attached
With Rails 7.1, users can attach a file or pathname directly to has_one_attached associations. This makes it easier to attach files already stored on the filesystem.
Rails adds the ability to pass the expires_at option to ActiveStorage::Blog#signed_id
The expires_at option for ActiveStorage Blob signed IDs allows you to specify when the signed ID will expire. This can be useful for sharing sensitive files or files you don't want publicly accessible forever.
Metaprogramming in Ruby
Explore about metaprogramming in Ruby and how to use it.
Rails 7.1 gives templates more control over the locals they receive
Rails 7.1 introduces an option that enables templates to have required arguments with default values.
Rails 7.1 makes it possible to execute tests for a given range of lines in a file
In Rails 7.1, you can execute tests for a given range of lines (a-b) by passing the range to the test command.
Rails 7.1 removes the secrets:setup command and deprecates secrets:edit and secrets:show commands
Rails 7.1 removes the deprecated setup command of secrets and adds a deprecation warning for secrets edit and show commands.
Rails 7.1 makes increment_counter and decrement_counter accept a by argument
In Rails 7.1, the increment_counter and decrement_counter methods can now be passed an argument to increment or decrement the counter by any value.
Shakapacker 7
Shakapacker, Webpacker's official successor, is a Ruby gem that integrates webpack into Ruby on Rails. Version 6 had references to both webpacker and shakapacker, but with version 7, Shakapacker is now entirely Shakapacker.
Rails 7.1 adds support for Array#intersect? to ActiveRecord::Relation
In Rails 7.1, the Array#intersect? method can be used to find if two ActiveRecord::Relation objects intersect or not.
Rails 7.1 adds the ability to raise errors on missing callback actions
In Rails 7.1, you can now configure your controllers to throw an error if the only or except options in controller callbacks refer to actions that don't exist. This helps detect and fix typos and other mistakes in your controller code.
Rails 7.1 adds the ability to defer the unique constraints in PostgreSQL
With Rails 7.1, you can delay the unique constraints check using the deferrable option.
Rails 7.1 enhances PostgreSQL enum functionality
Rails 7.1 adds rename_enum, add_enum_value and rename_enum_value commands to DB migration extending support for PostgreSQL enums.
Normalize Data with Rails 7.1
Rails 7.1 adds ActiveRecord::Base::normalizes method to standardize the data before saving it to the database.
Rails 7.1 adds --parent option to the controllers
Rails 7.1 controller generator accepts the --parent option. It allows to generate a controller that inherits from the specified parent controller.
Rails 7.1 adds picture_tag helper to support HTML5 picture element
Rails 7.1 adds the picture_tag helper method that renders the HTML picture tag for handling responsive images.
Rails 7.1 adds routes --unused option to detect extraneous routes
Discover extraneous routes in your Rails application effortlessly by utilizing the --unused option with the rails routes command.
Rails 7.1 adds ActiveJob#perform_all_later to enqueue multiple jobs at once
Rails 7.1 adds perform_all_later to ActiveJob that enqueues many jobs at once, eliminating repeated Redis roundtrips.
Rails 7.1 introduces deliver callbacks for ActionMailer
Rails 7.1 adds before_deliver and after_deliver callbacks to ActionMailer to hook into the lifecycle events of the mail delivery.
Rails 7.1 makes ActiveRecord query cache an LRU
With Rails 7.1, the ActiveRecord query cache uses the LRU strategy and removes the least recently used queries.
Manage Rails app business logic using ActiveInteraction gem
Let's dive into managing Rails application-specific business logic using ActiveInteraction.
RailsConf 2020 -- Webpacker, It-Just-Works, But How?
How does the Webpacker gem provide "it-just-works" webpack integration with Rails? That simplicity did not come easily. The rich functionality, complexity, and rapid evolution of the webpack ecosystem necessitated extension points beyond a simple Ruby config file.
Introduction to Cypress on Rails
Cypress provides really powerful tools to create true end-to-end tests for modern web applications. With these testing features, stay 100% confident that all frontend user interactions, even async requests, work as expected.
Enums and Queries in Rails 4.1, and Understanding Ruby
Understanding Ruby and how enums work in Rails 4.1.
Storing or Excluding Node Modules in Rails Git Repositories
Should you store your node_modules in your git repository or configure git to ignore the node_modules directory.
Pry, Ruby, Array#zip, CSV, and the Hash[] constructor
Example showing how pry demonstrates the usefulness of Array#zip with CSV
Rails Gem Upgrading Tips and Strategies
Best-practices for upgrading Ruby on Rails gems to newer versions while saving time and avoiding headaches.
Specific Issues Upgrading Gems to Rails 4.1, RSpec 3, and Twitter Bootstrap 3.2
This article describes some tougher issues I faced when upgrading to Rails 4.1 and RSpec 3.
Fast Tests: Comparing Zeus with Spring on Rails 4.1 and RSpec 3
A comparison of using Zeus vs Spring with Rails 4.1 along with the parallel-tests gem.
Pry, Ruby, and Fun with the Hash Constructor
Example showing how pry can help one better understand the useful Ruby Hash[] constructor.
2014 Golden Gate Ruby Conference: Top 10 Reasons to Attend
My top reasons to attend the 2014 Golden Gate Ruby Conference (GoGaRuCo).
Rocking with tmux, tmuxinator, Guard, Zeus, and iTerm2 for Rails Development
tmux, tmuxinator, and iTerm2 tips for productivity with Rails Development
Simple Form and Disabling Buttons on Submit by Default
Fixing RecordNotUnique errors by turning on disable_with by default for all submit buttons using simple_form.
GoGaRuCo 2013: Community > Code
A Newbie's 2013 GoGaRuCo Experience
Migrating from Capybara-Webkit to Poltergeist-PhantomJs
Tips for efficiently migrating a test rspec test suite from capybara-webkit to poltergeist-phantomjs
Testing Error Handling
How do ensure that your application properly handles errors, especially when relying on third parties, such as payment processors? Is it easy to verify that the right things happen when the wrong things happen?
Strategies for Rails Logging and Error Handling
Clean logging and error handling is a critical aspect of a RoR app. What’s a good strategy? Why does this matter?