Module: DefaultKey
Defined Under Namespace
Modules: InstanceMethods
Class Method Summary collapse
Instance Method Summary collapse
- #default_key ⇒ Object
- #default_key=(key) ⇒ Object
- #find(*args) ⇒ Object
- #has_default_key(key) ⇒ Object
Class Method Details
.extended(klass) ⇒ Object
35 36 |
# File 'app/models/concern/default_key.rb', line 35 def self.extended klass klass.include( InstanceMethods ) ;end |
Instance Method Details
#default_key ⇒ Object
4 5 |
# File 'app/models/concern/default_key.rb', line 4 def default_key @@default_key ;end |
#default_key=(key) ⇒ Object
7 8 |
# File 'app/models/concern/default_key.rb', line 7 def default_key= key @@default_key = key ;end |
#find(*args) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/models/concern/default_key.rb', line 13 def find *args if self.respond_to?( :default_key ) new_args = args.flatten.reject { |a| a.blank? } rel = self.where(self.default_key => new_args) if rel.size < new_args.size rel = self.where(self.primary_key => new_args) if rel.size < new_args.size raise ::ActiveRecord::RecordNotFound else new_args.size > 1 && rel || rel.first ;end else new_args.size > 1 && rel || rel.first ;end else super ;end ;end |
#has_default_key(key) ⇒ Object
10 11 |
# File 'app/models/concern/default_key.rb', line 10 def has_default_key key self.default_key = key ;end |