Module: Pinky::Associations
- Defined in:
- lib/pinky/associations.rb
Instance Method Summary collapse
Instance Method Details
#has_one(klass, opts = {}) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 |
# File 'lib/pinky/associations.rb', line 3 def has_one klass, opts = {} klass_name = klass.name.split('::').last.downcase find_by = opts[:lookup_by] || "#{klass_name}_id" association_name = opts[:as] || klass_name define_method association_name do lookup_value = send(find_by) association_model = lookup_value.nil? ? nil : klass.find(:id => lookup_value) rescue nil raise NotFoundException.new if association_model.nil? && !opts[:allow_nil] association_model end end |