module WeakParameters
Provides `validates` DSL to controllers to validate params.
Examples
# POST /recipes { name: "alice" } #=> 201 # POST /recipes { name: "alice", type: 1 } #=> 201 # POST /recipes { name: "alice", type: "bob" } #=> 400 # POST /recipes { type: 1 } #=> 400 class RecipesController < ApplicationController rescue_from WeakParameters::ValidationError do |exception| render text: exception.message, status: 400 end validates :create do string :name, required: true integer :type end def create respond_with Recipe.create(params.slice(:name, :type)) end end # WeakParameters.stats has its definitions. WeakParameters::stats[:recipes][:create].validators[0].key #=> :name WeakParameters::stats[:recipes][:create].validators[0].required? #=> true WeakParameters::stats[:recipes][:create].validators[1].key #=> :type WeakParameters::stats[:recipes][:create].validators[1].required? #=> false
Constants
- VERSION
Public Class Methods
stats()
click to toggle source
# File lib/weak_parameters.rb, line 52 def self.stats @stats ||= ActiveSupport::HashWithIndifferentAccess.new do |hash, key| hash[key] = ActiveSupport::HashWithIndifferentAccess.new end end