On Nov 19, 2011, at 2:19 PM, Donald R. Ziesig wrote:

> Hi All!
> 
> I thought I saw the solution to this problem a long time ago, but I can't 
> seem to find it now.
> 
> I have a table of Properties with belongs_to Agents.  I want to restrict the 
> uniqueness of the property's name only to a specific Agent such that Agent1 
> had Properties A, B and C and Agent2 adds a property B - right now that is 
> rejected as being a duplicate, but it shouldn't fail.  I can do this with a 
> bit of hacking, but there should be an easy way to do it.
> 
> in the Agents model:
> 
>   fields do
>     name :string, :unique, :required
>     *
>     *
>   end
>  
>   has_many :properties
> 
> in the Properties model:
> 
>   fields do
>     name :string, :unique, :required  #I should be able to add something here 
> I think.
>     *
>     *
>    end
> 
> belongs to :agent
> 
> What am I missing here?

The :unique option in the field declaration is a shortcut - it doesn't accept 
all the options that the underlying Rails validation does. If you remove it and 
write out the full validation (on Property):

validates_uniqueness_of :name, :scope => :agent_id

it should do exactly what you're describing.

--Matt Jones

-- 
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