module PaginationHeaders
def set_pagination_headers(scope)
links = []
links << page_link('next', scope.next_page) if scope.next_page
links << page_link('prev', scope.prev_page) if scope.prev_page
response.headers['Link'] = links.compact.join(', ') if links.any?
cookies.encrypted[:trusted_device] = {
value: { user_id: current_user.id, fingerprint: device_fingerprint }.to_json,
expires: 30.days.from_now,
httponly: true,
secure: Rails.env.production?,
same_site: :strict,
# app/channels/chat_channel.rb
class ChatChannel < ApplicationCable::Channel
def subscribed
# Subscribe to a specific room
room = Room.find(params[:room_id])
Rails.application.routes.draw do
namespace :api do
namespace :v1 do
resources :posts do
resources :comments, only: [:index, :create]
end
class Tags::Top
def call(limit: 20)
ActsAsTaggableOn::Tagging
.where(taggable_type: 'Snip')
.group(:tag_id)
.order(Arel.sql('COUNT(*) DESC'))
class HealthController < ActionController::API
def show
checks = {
db: db_ok?,
redis: redis_ok?
}
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
static targets = ["bar", "percent", "status"]
static values = {
current: { type: Number, default: 0 },
class AddDeletedAtToPosts < ActiveRecord::Migration[6.1]
def change
add_column :posts, :deleted_at, :datetime
add_index :posts, :deleted_at
end
end
class FeatureFlags
def enabled?(name, member: nil)
key = "ff:#{name}:member:#{member&.id || 'anon'}"
Rails.cache.fetch(key, expires_in: 30.seconds) do
flag = FeatureFlag.find_by!(name: name)
# app/validators/order_validator.rb
class OrderValidator < ActiveModel::Validator
def validate(record)
validate_order_total(record)
validate_items_availability(record)
validate_shipping_address(record)
module AdvisoryLock
module_function
def with_lock(key)
lock_id = Zlib.crc32(key.to_s)
got_lock = ApplicationRecord.connection.select_value("SELECT pg_try_advisory_lock(#{lock_id})")
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins_list = if Rails.env.production?
ENV['CORS_ALLOWED_ORIGINS']&.split(',') || []
else
'localhost:3000', 'localhost:5173', /127\.0\.0\.1:\d+/