The solution was to change the contents of contact.rb to the following:

class Contact < ActiveRecord::Base

  hobo_model # Don't put anything above this

  fields do
    name    :string, :required
    company :string
    address_1 :string
    address_2 :string
    city      :string
    state     :string
    date_met  :date
    married   :boolean
    age       :integer
    notes     :text
    timestamps
  end


validates_uniqueness_of :name, :scope => [:address_1, :city, :state]

  # --- Permissions --- #

  def create_permitted?
    acting_user.administrator?
  end

  def update_permitted?
    acting_user.administrator?
  end

  def destroy_permitted?
    acting_user.administrator?
  end

  def view_permitted?(field)
    true
  end

end


I did not take the time to add the ZipCode field or address_2, but you get the 
idea.  The scope adds more fields to the name field to determine whether the 
record has enough "uniqueness".  For any company with a large number of 
customers nation wide, this sort of thing is required.  Works exactly like I 
had hoped.  I tried entering "John Smith" for two separate records, with 
slightly different addresses, and it saved both records.  Now I want to find a 
way to visually distinguish easily between those two records from the first 
"Contact" page.  In other words, create a calculated field that concatenates 
the name field, address_1, city, state, and ZipCode so that I know immediately 
which "John Smith" to click on.


Sincerely,

Arthur Baldwin


________________________________
 From: Arthur Baldwin <[email protected]>
To: "[email protected]" <[email protected]> 
Sent: Monday, January 16, 2012 1:11 PM
Subject: Re: [Hobo Users] Re: Multi - Field Uniqueness
 

Ok, I got it working!  I had forgotten to include a colon in front of the field 
names between the opening and closing brackets.

Arthur



________________________________
 From: Arthur Baldwin <[email protected]>
To: "[email protected]" <[email protected]> 
Sent: Monday, January 16, 2012 12:24 PM
Subject: Re: [Hobo Users] Re: Multi - Field Uniqueness
 

What do you mean when you say "fall back to the rails validation"?  Do I need 
to make changes to a different file than the conact.rb file in the models 
directory?

Arthur



________________________________
 From: kevinpfromnm <[email protected]>
To: [email protected] 
Cc: Arthur Baldwin <[email protected]> 
Sent: Monday, January 16, 2012 12:03 PMco
Subject: [Hobo Users] Re: Multi - Field Uniqueness
 

you'll need to fall back to the rails validation (which the hobo is a rails 
validation, just a shortcut for a common use case).

IIRC, the syntax is like validates_uniqueness_of :field, :scope => 
[:other_field1,...]

If that's not enough to get you going, you can get to the rails docs pretty 
easy with a quick google search on validates_uniquess_of (should autocomplete 
after the u)
-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/hobousers/-/VvjxOt3xpyAJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.



-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.



-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

Reply via email to