Module: Eac::Model
- Defined in:
- lib/eac/model.rb
Instance Method Summary collapse
-
#column?(column) ⇒ Boolean
Verifica se uma coluna existe.
- #fetch_column_errors(record, record_column, self_column, options = {}) ⇒ Object
-
#fetch_record_errors(record, options = {}) ⇒ Object
Adiciona as mensagens de erro de record.
-
#fetch_record_errors_by_mapping(record, mapping, options = {}) ⇒ Object
Similar a fetch_record_errors, mas torna possível especificar, através de mapping, colunas-alvo em self com nomes diferentes das colunas-fonte em record.
- #save_or_raise ⇒ Object
Instance Method Details
#column?(column) ⇒ Boolean
Verifica se uma coluna existe.
33 34 35 |
# File 'lib/eac/model.rb', line 33 def column?(column) respond_to?(column) && respond_to?("#{column}=") end |
#fetch_column_errors(record, record_column, self_column, options = {}) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/eac/model.rb', line 24 def fetch_column_errors(record, record_column, self_column, = {}) return if [:skip] && [:skip].include?(record_column) record.errors[record_column].each do || (self_column, , [:default_column], "#{record.class.human_attribute_name(record_column)}: ") end end |
#fetch_record_errors(record, options = {}) ⇒ Object
Adiciona as mensagens de erro de record. As mensagens de uma coluna X em record serão adicionadas na coluna X em self. Se options for especificado as mensagens da coluna X de record em que X não existe em self serão adicionadas na coluna options. Um array de colunas pode ser passado em options de colunas em record que não terão suas falhas adicionadas.
9 10 11 12 13 |
# File 'lib/eac/model.rb', line 9 def fetch_record_errors(record, = {}) record.errors.keys.each do |column| fetch_column_errors(record, column, column, ) end end |
#fetch_record_errors_by_mapping(record, mapping, options = {}) ⇒ Object
Similar a fetch_record_errors, mas torna possível especificar, através de mapping, colunas-alvo em self com nomes diferentes das colunas-fonte em record. mapping tem o formato { record_column => self_column }.
18 19 20 21 22 |
# File 'lib/eac/model.rb', line 18 def fetch_record_errors_by_mapping(record, mapping, = {}) mapping.each do |record_column, self_column| fetch_column_errors(record, record_column, self_column, ) end end |
#save_or_raise ⇒ Object
37 38 39 40 41 42 |
# File 'lib/eac/model.rb', line 37 def save_or_raise unless save fail "Falha ao tentar salvar #{self.class.name}: #{errors_to_string}" end self end |