ruby-on-rails
-
Conditional templates and Viewport for mobile browsers and native apps
-
Generate and display OpenGraph images
-
Build a calendar from zero (Month view)
-
Generate PDF and PNG with Ferrum (headless Chrome API)
-
Search multiple models
-
Heroku upload local database to production
-
DateRangePicker with StimulusJS, Importmaps, gem Ransack
-
API pagination with Pagy
-
API Tracking and Usage limiting
-
API documentation with OpenAPI and Swagger using gem Rswag
-
Rails CRUD API requests with Faraday
-
Rails CRUD API requests with cURL
-
Build a Public-facing Rails API with Bearer token authentication
-
Test Omniauth authentication (github, azure)
-
Omniauth with Microsoft (Azure Active Directory)
-
Broadcaster pattern for Turbo Streams Broadcasts
-
14 Ruby on Rails and 7 Hotwire interview questions in 2023
-
TLDR: Rails 7 Active Record Encryption
-
Best practices for writing and collaborating on Rails code
-
What's the difference between Rails 4, Rails 5, Rails 6 and Rails 7?
-
Recent search history with Kredis
-
Omniauth without Devise
-
Complete guide to iCalendar events with Ruby
-
Notes on using ActionMailer
-
Use Service Objects
-
Slim Select with StimulusJS
-
Highlight @ mentions, convert # hashtags to links
-
Deploy to DigitalOcean App Platform in Production
-
Slack API. Send text, markdown and files to Slack
-
Github Actions. CI/CD basics
-
Autogenerate and store images with Rmagick and Imagemagick with ActiveStorage
-
Link to previous page if internal request
-
Double loading StimulusJS controllers
-
Use SwearJar to moderate and censor bad words. **** you!
-
auto-style your html.erb with gem erb-lint
-
Export CSV from Rails
-
Import CSV to Rails
-
Load partials async with Turbo Frames
-
Mass update selected records
-
Gem Kredis #2 - recently visited pages
-
Gem Kredis #1 - access Redis via ActiveRecord
-
Accept cookies consent banner in Rails
-
SVG in Rails. Gem inline_svg
-
Stop writing strftime
-
Chained select fields for gem City-State. Dynamic forms
-
Chained select fields for custom data structures
-
Fontawesome + Importmaps + Rails 7
-
gem acts_as_votable 4: cached votes, vote scopes, Hotwire
-
#21 Hotwire Turbo: The one right way to do Modals
-
Gem data-migrate - an essential gem!
-
Quick tip: Using Partials to Simplify Views
-
TIP: if-else, case-when, hash?
-
TIP: Rendering partials and collections
-
#17 Turbo Streams: Broadcasts
-
Emoji select with `gem unicode-emoji`
-
TIL: HTML tags I did not know about
-
TIL: date_select VS date_field
-
#16 Turbo Streams: Edit Modal.
-
Tip: Automatically annotate rails views
-
#15 Turbo Streams CRUD
-
StimulusJS autopaste controller
-
Make Devise work with Hotwire Turbo and Rails 7
-
Pretty URLs with gem friendly_id
-
RE-REVISED: Polymorphism 101. Part 5 of 3. Even better Polymorphic Comments
-
TIP: URL helper: Redirect to previous page
-
Validate uniqueness on the database level
-
#13 Turbo Streams: 5 ways to render View Components
-
Paginate/Tab records by any attribute
-
Basic CSS for new Rails projects without a CSS Framework
-
#12 Turbo: Pagination with gem Pagy, ViewComponent without page refresh
-
#11 Turbo Frames - Load content only when a dropdown is opened
-
#10 Turbo Streams - Create and stream records. Flash messages. Reusable Streams
-
Gem Meta Tags for better SEO
-
#9 Turbo Frame Tabs
-
#8 Hotwire Turbo: Tabbed content with Turbo Streams
-
ONLY Omniauth login with Devise (without email registration)
-
Tiny Tip: Inline if-else statements
-
#7 Hotwire Turbo Frames: Search without page refresh. Stimulus. Ransack
-
5 ways to associate current_user with record on create
-
Generate Entity-Relationsip-Diagrams (ERD) from a Rails app
-
#6 Hotwire Turbo: Increment likes count without any page refreshes
-
#5 Turbo: Button to update status and refresh frame. Edit inboxes inline
-
Tiny Tip: URL and link helpers.
-
#4 Turbo Frame - Sort records without page refresh. Sorting without a gem.
-
Tiny Tip: Debug current request in views
-
Current attribute. Access current_user from model
-
#3 Turbo: Keep the audio playing after changing the page with data-turbo-permanent
-
#2 Turbo Stream inboxes to inboxes/index. Lazy load form. Replace form on submit.
-
#1 Turbo Stream messages to inbox. Render errors
-
Install and use ActiveAdmin in 13 steps
-
HTTP Basic authentication
-
Generate a BARCODE for a Product
-
Generate a QR code for a Product and store it in ActiveStorage. Service Objects
-
Select or Create Tags with Tom-Select without jQuery (VanillaJS)
-
Gem Traceroutes - find routes without controller actions, actions without routes
-
Gem Public Activity: Complete guide to total surveillance
-
Export from database table to Excel Workbook. Level 1
-
Quick tip: Helper to display different text based on time of day
-
gem Draper: abstract view logic from the model
-
Boolean Checkbox array - easier than you think!
-
Procfile: automatically run migrations on Heroku deploy
-
Rails authorization with gem Pundit
-
Rails enums - different approaches
-
Ruby on Rails 6+: install jQuery with yarn and webpacker
-
gem acts_as_votable 3: vote search scopes
-
config_for settings.yml
-
REVISED: Polymorphism 101. Part 4 of 3. Polymorphic Comments
-
Quick tip: Permit params by current user roles
-
Edit Rolify roles for a User
-
Markdown Level 2. Style markdown css with gem Rouge
-
Migrating from Bootstrap 4 to Bootstrap 5
-
Add Markdown to your Rails app
-
Role scopes with gem Rolify
-
Install and use gem pg_search
-
Stimulus Rails - Count characters in input field (+ add css if > 140 characters)
-
Stimulus Rails - Count characters in input field
-
Install Stimulus on Ruby on Rails 6
-
Display or hide div based on field input (RoR + JS)
-
Add social log in with Github (Omniauth)
-
Complete guide to generating PDFs with gem wicked_pdf
-
install and troubleshoot mysql
-
gem acts_as_votable 2: reddit-style up and down voting
-
gem acts_as_votable 1: Like and Dislike posts with Vanilla JS
-
Discount coupon: Ruby on Rails 6: Learn 25+ gems and build a Startup MVP 2020
-
Launching course: Ruby on Rails - Learn to Build a Multitenancy Subscriptions SaaS app MVP
-
Install Bootstrap 5 with Ruby on Rails 6+. Yarn, Webpack. Popovers, Tooltips. StimulusJS
-
Telegram Part 3. Authentication. Bot to send private messages
-
Telegram Part 2. Notification for CRUD actions
-
Search field without gems
-
counter_cache - count how many children a records has
-
Telegram Part 1. Button to send group messages
-
Button to update status attribute of a table
-
Polymorphism 101. Part 3 of 3. ActsAsTaggable without a gem. SelectizeJS
-
Polymorphism 101. Part 2 of 3. Polymorphic Payments inside-out.
-
Polymorphism 101. Part 1 of 3. Polymorphic Comments.
-
Sending emails in production with Amazon SES
-
Install and use gem invisible_captcha with devise
-
styling for true false values
-
One hash field to manage all user roles
-
Ruby on Rails 6: Disappearing flash messages with toastr
-
Navbar with Devise and Bootstrap (4, 5)
-
How to use Credentials in Ruby on Rails 6? TLDR
-
How to use Credentials in Ruby on Rails 6? Full guide
-
SaaS: How to code the subscriptions business model?
-
How to Embed Youtube videos with ActionText? TLDR
-
How to load Heroku production database in development?
-
Write skinny scaffolds and generators
-
Ruby on Rails: How to setup Postgresql? TLDR
-
Ruby on Rails: templates and generators in 2020
-
Rails 6: Install Bootstrap 4 with Yarn and Webpacker: TLDR
-
Rails 6: Install Bootstrap with Yarn and Webpacker: Full guide
-
Highlight link to current page
-
Ruby on Rails: Dark Mode: TLDR
-
Quick tip: Footer on the bottom of the page: TLDR
-
Build a Trello clone with Ruby on Rails, RankedModel and jQuery Sortable
-
Memo - Rails ActiveRecord data types