Dear Jeremy,

I tried your idea by putting the following code into my contact.rb file:

class Contact < ActiveRecord::Base

  hobo_model # Don't put anything above this

  fields do
    # name       :string
    company    :string
    address_1  :string
    address_2  :string
    city       :string
    state      :string
    postalcode :string
    birthdate  :date
    married    :boolean
    age        :integer
    notes      :text
    timestamps
  end
  
  # validates_uniqueness_of :name, :scope => [:address_1, :address_2, :city, 
:state, :postalcode]

  def name
    "#{name}, #{address_1}, #{city}, #{state}, #{postalcode}"
  end
  
  # --- 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


but I get a crash as soon as I click on the Contacts tab.  You said it worked 
for you, so I'm sure I don't know about something else.

Sincerely,

Arthur Baldwin


________________________________
 From: Owen Dall <[email protected]>
To: [email protected] 
Sent: Tuesday, January 17, 2012 7:08 PM
Subject: Re: [Hobo Users] Re: Multi - Field Uniqueness
 

Thanks for getting into the mix and building our "Knowledge Space"


On Tue, Jan 17, 2012 at 1:57 AM, JezC <[email protected]> wrote:

Ooh - I'm pretty new to hobo, but I just solved this problem (visual
>identification by uniquely naming something where no individual field
>is unique)...
>
>There is a "name" attribute for fields, so you can pick one field as
>the name to be used (there's also rules for picking fields called
>"name", "title", etc, by default):
>
>fields do
>  first, :string, :name => true
>  second, :string
>...
>
>You can't pick two or more fields like this - you get only one field
>treated as the name. Try this instead:
>
> def name
>   "#{name}, #{address1}, #{city}, #{state}"
> end
>
>The method "name" will be used to calculate the value to show in
>Forms, Cards and Pages. Works a treat for me. :)
>
>I think this is the first answer I've given on this list, rather than
>yet another newbie question. Feel my smugnitude (yes, I think this is
>actually the right answer).
>
>Cheers, JeremyC.
>
>
>On Jan 17, 2:58 am, Arthur Baldwin <[email protected]> wrote:
>> 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 
>> visithttps://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 
>> athttp://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 
>> athttp://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 
>> athttp://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.
>
>


-- 

-Owen
 
Owen Dall, Chief Systems ArchitectBarquin International 
www.barquin.com
Cell: 410-991-0811
-- 
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