Module: Rein::Constraint::Inclusion
- Includes:
- ActiveRecord::ConnectionAdapters::Quoting
- Included in:
- ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
- Defined in:
- lib/rein/constraint/inclusion.rb
Overview
This module contains methods for defining inclusion constraints.
Instance Method Summary collapse
- #add_inclusion_constraint(table, attribute, options = {}) ⇒ Object
- #remove_inclusion_constraint(table, attribute) ⇒ Object
Instance Method Details
#add_inclusion_constraint(table, attribute, options = {}) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/rein/constraint/inclusion.rb', line 9 def add_inclusion_constraint(table, attribute, = {}) name = "#{table}_#{attribute}" values = [:in].map { |value| quote(value) }.join(", ") conditions = "#{attribute} IN (#{values})" execute("ALTER TABLE #{table} ADD CONSTRAINT #{name} CHECK (#{conditions})") end |
#remove_inclusion_constraint(table, attribute) ⇒ Object
16 17 18 19 |
# File 'lib/rein/constraint/inclusion.rb', line 16 def remove_inclusion_constraint(table, attribute) name = "#{table}_#{attribute}" execute("ALTER TABLE #{table} DROP CONSTRAINT #{name}") end |