Module: Sequel::Plugins::WhitelistSecurity::ClassMethods
- Defined in:
- lib/sequel/plugins/whitelist_security.rb
Instance Attribute Summary collapse
- 
  
    
      #allowed_columns  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Which columns should be the only columns allowed in a call to a mass assignment method (e.g. set) (default: not set, so all columns not otherwise restricted are allowed). 
Instance Method Summary collapse
- 
  
    
      #freeze  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Freeze allowed columns when freezing model class. 
- 
  
    
      #set_allowed_columns(*cols)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Set the columns to allow when using mass assignment (e.g. set).
Instance Attribute Details
#allowed_columns ⇒ Object (readonly)
Which columns should be the only columns allowed in a call to a mass assignment method (e.g. set) (default: not set, so all columns not otherwise restricted are allowed).
| 22 23 24 | # File 'lib/sequel/plugins/whitelist_security.rb', line 22 def allowed_columns @allowed_columns end | 
Instance Method Details
#freeze ⇒ Object
Freeze allowed columns when freezing model class.
| 27 28 29 30 | # File 'lib/sequel/plugins/whitelist_security.rb', line 27 def freeze @allowed_columns.freeze super end | 
#set_allowed_columns(*cols) ⇒ Object
Set the columns to allow when using mass assignment (e.g. set).  Using this means that any columns not listed here will not be modified.  If you have any virtual setter methods (methods that end in =) that you want to be used during mass assignment, they need to be listed here as well (without the =).
It may be better to use set_fields which lets you specify the allowed fields per call.
Artist.set_allowed_columns(:name, :hometown)
Artist.set(name: 'Bob', hometown: 'Sactown') # No Error
Artist.set(name: 'Bob', records_sold: 30000) # Error
| 43 44 45 46 | # File 'lib/sequel/plugins/whitelist_security.rb', line 43 def set_allowed_columns(*cols) clear_setter_methods_cache @allowed_columns = cols end |