On 13 September 2011 22:17, Randy Regnier <rbregn...@gmail.com> wrote:
> On 09/13/2011 03:34 PM, Jesse wrote:
>>
>> On 9/13/11 1:22 PM, Randy Regnier wrote:
>>>
>>> I have a question about how best to model a pair of properties/attributes
>>> in Rails3. The generic "models" are:
>>>
>>> class Foo < ActiveRecord::Base
>>> end
>>> class Bar < ActiveRecord::Base
>>> end
>>>
>>> I want Foo to have two associations with Bar, along the lines of
>>> 'has_one' for each association, where I can work with each, as in bar1 and
>>> bar2. 'has_many' would work, but it would be extra work to have to fish the
>>> correct one out of the array, and isn't as elegant a way to model the
>>> relationships.
>>>
>>> Thanks
>>>
>>> Randy
>>>
>> I suppose that it could be done with a has_one relationship repeated as
>> such
>> class Foo < AR::B
>>    belongs_to :bar1, class_name => "Bar", :foreign_key => "bar1_id"
>>    belongs_to :bar2, class_name => "Bar", :foreign_key => "bar2_id"
>> end
>>
>> Mind you this is not a very elegant way of doing it, but it is adhering to
>> KiSS principles.
>>
>> On the Bar end of things, how should the relationship play out? Should it
>> only be able to be associated to one Foo?
>>
>> Also are do bar 1 and bar 2 behave differently or have any characteristic
>> that distinguish them. In other words, are all bar1's always going to be
>> bar1's? if so you can do a normal has many relationship with a limit of 2
>> children and then scopes on the bar model to make up the difference.
>>
>> Jesse
>>
>
> Thanks.
>
> On the Bar end, it would only be associated with the one Foo, yes.
>
> bar1 and bar2 would have different values for their respective properties,
> but that is about all. Well, I guess if a Foo got removed, then so should
> both of its Bars, but I think I've seen how to do that part.

Looking at a Bar can you tell whether it is a bar1 or a bar2 just from
the records contents?

Colin

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to