strong-parameters

ruby
class SignupForm
  include ActiveModel::Model
  include ActiveModel::Attributes

  attribute :account_name, :string
  attribute :email, :string

Shallow Controller, Deep Params: Form Object Pattern

rails activemodel form-object
by codesnips 3 tabs
ruby
module Api
  module V1
    class PostsController < ApplicationController
      def create
        post = current_user.posts.build(post_params)

Rails strong parameters for nested attributes

rails security strong-parameters
by Maya Patel 1 tab
ruby
class Order < ApplicationRecord
  has_many :line_items, dependent: :destroy, inverse_of: :order

  accepts_nested_attributes_for :line_items,
    reject_if: :all_blank,
    allow_destroy: true

Transactionally Create Parent + Children with accepts_nested_attributes_for

rails activerecord nested-attributes
by codesnips 3 tabs
ruby
Rails.application.routes.draw do
  resources :articles do
    resources :comments, shallow: true, only: %i[index new create show edit update destroy]
  end

  root "articles#index"

Nested Comments on Articles with Shallow Routing and Scoped Lookups in Rails

rails routing controllers
by codesnips 3 tabs
ruby
class Order < ApplicationRecord
  has_many :line_items, inverse_of: :order, dependent: :destroy

  accepts_nested_attributes_for :line_items,
    allow_destroy: true,
    reject_if: ->(attrs) { attrs["product_id"].blank? && attrs["quantity"].blank? }

Validate Nested Attributes for an Order and Its Line Items in Rails

rails activerecord validations
by codesnips 3 tabs
ruby
class Product < ApplicationRecord
  scope :by_status, ->(status) {
    status.present? ? where(status: status) : all
  }

  scope :in_category, ->(category_id) {

Composable Query Filters with Rails Scopes and a Filter Object

rails activerecord scopes
by codesnips 3 tabs
erb
<%= form_with url: bulk_update_orders_path, method: :patch, data: { turbo_confirm: "Update selected orders?" } do %>
  <div class="batch-toolbar">
    <%= select_tag :status,
          options_for_select(Order.statuses.keys.map { |s| [s.humanize, s] }),
          prompt: "Set status to\u2026" %>
    <%= submit_tag "Apply to selected", class: "btn" %>

Bulk-Updating Order Statuses with a Checkbox Collection and update_all Batch Action in Rails

rails activerecord update-all
by codesnips 3 tabs
ruby
class AddressForm
  include ActiveModel::Model
  include ActiveModel::Attributes

  attribute :line1, :string
  attribute :line2, :string

Rails Nested Address Form Object With Aggregated ActiveModel Errors

rails activemodel form-object
by codesnips 3 tabs