Hi, I’m working with two models that have a “has_and_belongs_to_many”
relation. Both models reside on a database that it is not the default
one.
A < External
has_and_belongs_to_many: B
B < External
has_and_belongs_to_many: A
Retriving the information for A works perfectly, but when trying to
“create” an element on A:
“A.B.create(…)”
ActiveRecord tries to create it on the default database. The solution
was doing:
b = B.find(…)
A.B << b
But, looking on the sourcecode I’ve found on the ActiveRecord file
“has_and_belongs_to_many_association.rb [25:29]”
def has_primary_key?
return @has_primary_key unless @has_primary_key.nil?
@has_primary_key =
(ActiveRecord::Base.connection.supports_primary_key? &&
ActiveRecord::Base.connection.primary_key(@reflection.options
[:join_table]))
end
Shouln’t it be something like?
def has_primary_key?
return @has_primary_key unless @has_primary_key.nil?
@has_primary_key = (@owner.connection.supports_primary_key? &&
@owner.connection.primary_key(@reflection.options
[:join_table]))
end
Thank you
On Oct 16, 10:29 am, erzapito [email protected] wrote:
Hi, I’m working with two models that have a “has_and_belongs_to_many”
relation. Both models reside on a database that it is not the default
one.
Have you tried using has many through ? with has many through the join
table is also a rails model, so you have a place to say that the join
table should be in this other database.
Fred
On Fri, Oct 16, 2009 at 12:31 PM, Frederick C. <
[email protected]> wrote:
Have you tried using has many through ? with has many through the join
table is also a rails model, so you have a place to say that the join
table should be in this other database.
I tried it, but doing some tests I found that it allowed to have more
than
one relation between two elements, a new problem that I don’t know how
to
solve.
The real problem was with the library file, deleting elements also fails
because it tries to use the base connection instead of the ancestor’s
one.
–
[email protected] @ google talk
Alexandre Paz Mena wrote:
On Fri, Oct 16, 2009 at 12:31 PM, Frederick C. <
[email protected]> wrote:
Have you tried using has many through ? with has many through the join
table is also a rails model, so you have a place to say that the join
table should be in this other database.
I tried it, but doing some tests I found that it allowed to have more
than
one relation between two elements, a new problem that I don’t know how
to
solve.
validates_uniqueness_of and a unique index in the DB. Done.
Best,
Marnen Laibow-Koser
http://www.marnen.org
[email protected]