ruby

ruby
require 'activerecord-import'

class BulkImportPostsService
  BATCH_SIZE = 1000

  def initialize(csv_file_path)

Bulk operations with ActiveRecord import

rails performance activerecord
by Alex Kumar 1 tab
ruby
pin "application"
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true

pin_all_from "app/javascript/controllers", under: "controllers"

Importmap setup for Stimulus controllers (Rails 7 style)

rails hotwire stimulus
by Henry Kim 2 tabs
erb
<%= link_to 'Delete', task_path(task),
      data: { turbo_method: :delete, turbo_confirm: 'Delete this task?' },
      class: 'text-red-700 hover:underline' %>

Link that submits DELETE with Turbo (data-turbo-method)

rails hotwire turbo
by Henry Kim 2 tabs
ruby
class RedisMutex
  def initialize(redis: Redis.current)
    @redis = redis
  end

  def with_lock(key, ttl: 60)

Redis-Based Distributed Mutex (with TTL)

rails redis concurrency
by Sarah Chen 1 tab
ruby
class Presence
  TTL = 60

  def initialize(redis: Redis.current)
    @redis = redis
  end

Action Cable Presence Tracking (Lightweight)

rails actioncable redis
by Sarah Chen 1 tab
ruby
class QueryBudget
  def initialize(app, max_queries: 50)
    @app = app
    @max_queries = max_queries
  end

Per-Request Query Budget (Detect Runaway Pages)

rails performance observability
by Sarah Chen 1 tab
ruby
class AddSearchVectorToSnips < ActiveRecord::Migration[6.1]
  def change
    add_column :snips, :search_vector, :tsvector
    add_index :snips, :search_vector, using: :gin
  end
end

Multi-Column Full Text Search with tsvector

rails postgres search
by Sarah Chen 3 tabs
ruby
class AddLockVersionToPosts < ActiveRecord::Migration[6.1]
  def change
    add_column :posts, :lock_version, :integer, default: 0, null: false
  end
end

Optimistic locking for concurrent updates

rails database concurrency
by Alex Kumar 2 tabs
ruby
class PaymentService
  def initialize
    Stripe.api_key = Rails.application.credentials.stripe[:secret_key]
  end

  def create_payment_intent(amount:, currency: 'usd')

Environment-specific configuration with Rails credentials

rails security configuration
by Alex Kumar 2 tabs
ruby
class Profile < ApplicationRecord
  has_one_attached :avatar

  validate :avatar_type_and_size

  private

Safer File Attachments: Content Type + Size Validation

rails activestorage security
by Sarah Chen 1 tab
ruby
class StepsController < ApplicationController
  def move_up
    @step = Step.find(params[:id])
    @step.move_higher

    respond_to do |format|

Reorder a list server-side and reflect instantly with Turbo Streams

rails hotwire turbo
by Henry Kim 2 tabs
ruby
class RateLimiter
  def initialize(redis: Redis.current)
    @redis = redis
  end

  def allow?(key, limit:, period:)

Rate Limiting with Redis + Increment Expiry

rails redis security
by Sarah Chen 2 tabs