On 26 January 2011 16:03, Craig Leppan <[email protected]> wrote:
> I have a "Dependant destroy" and it wont work as its reference is not
> standard . By this I mean that I have changed the XXX_id to be something
> else as I had clashes: ambiguous relationships.
>
> class Product < ActiveRecord::Base
>  belongs_to :company
>  has_many :allocations, :dependent => :destroy

I think you need to specify :foreign_key => 'allocated_product_id' on the above.

Colin

>  has_many :companies, :through => :allocations
>
> class Company < ActiveRecord::Base
>  has_many :products, :dependent => :destroy
>  has_many :allocations, :dependent => :destroy
>  has_many :allocated_products, :through => :allocations
>
> And the joining table with an extra field
> class Allocation < ActiveRecord::Base
>  belongs_to :company
>  belongs_to :allocated_product, :class_name => 'Product'
> end
>
> I realize the error I get when testing deleting a company is due to the
> fact that its looking to delete product_id from the allocations table
> but cannot find it.
>
> "Mysql::Error: Unknown column 'allocations.product_id' in 'where
> clause': SELECT * FROM `allocations` WHERE (`allocations`.product_id =
> 3)"
>
> I have looked for options on the call but cant see any suitable
> Can I best do this by using an after delete filter, and how?
>
> Thanks
>
> --
> Posted via http://www.ruby-forum.com/.
>
> --
> 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 [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to