Has anyone faced this problem before?
I have 3 models, Project, ProjectRole and User. The tables are
distributed in two databases.
--------------------------------------------------------------------------------------------
Databases:
--------------------------------------------------------------------------------------------
Database X:
users
Database Y:
projects
project_roles
--------------------------------------------------------------------------------------------
Models:
---------------------------------------------------------------------------------------------
class Project < ActiveRecord::Base
has_many :project_roles
has_many :users, :through => :project_roles
end
class ProjectRole < ActiveRecord::Base
belongs_to :project
belongs_to :user
end
class User < ActiveRecord::Base
establish_connection :X
has_many :project_roles
has_many :projects, :through => :project_roles
end
----------------------------------------------------------------------------------------------
Now when i try to access users from project:
>> p = Project.first
+----+-----------+-------+
| id | name | alias |
+----+-----------+-------+
| 1 | Jerde L | PRO |
+----+-----------+-------+
>> p.users
Hirb Error: Mysql::Error: Table 'X.project_roles' doesn't exist:
SELECT `users`.* FROM `users` INNER JOIN `project_roles` ON
`users`.id = `project_roles`.user_id WHERE
((`project_roles`.project_id = 1))
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/connection_adapters/abstract_adapter.rb:219:in `log'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/connection_adapters/mysql_adapter.rb:323:in `execute'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/connection_adapters/mysql_adapter.rb:608:in `select'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/connection_adapters/abstract/database_statements.rb:7:in
`select_all_without_query_cache'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/connection_adapters/abstract/query_cache.rb:62:in
`select_all'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/base.rb:661:in `find_by_sql'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/base.rb:1548:in `find_every'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/base.rb:615:in `find'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/associations/has_many_through_association.rb:83:in
`find_target'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/associations/association_collection.rb:354:in
`load_target'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/associations/association_proxy.rb:212:in
`method_missing'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/
active_record/associations/association_collection.rb:371:in
`method_missing_without_paginate'
c:/rubyonrails/rails_apps/test_project/vendor/gems/
will_paginate-2.3.12/lib/will_paginate/finder.rb:170:in
`method_missing'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/hirb-0.3.1/lib/hirb/
formatter.rb:78:in `determine_output_class'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/hirb-0.3.1/lib/hirb/
formatter.rb:48:in `format_output'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/hirb-0.3.1/lib/hirb/
view.rb:213:in `render_output'
C:/rubyonrails/ruby/lib/ruby/gems/1.8/gems/hirb-0.3.1/lib/hirb/
view.rb:126:in `view_output'
>>
BUT: Getting projects from users works just fine.
>> u = User.first
+----+--------------+
| id | username |
+----+--------------+
| 1 | dummy |
+----+---------------+
>> u.projects
+----+---------------------+-------+
| id | name | alias |
+----+---------------------+--------+
| 1 | Jerde L | PRO |
| 2 | Spinka Group | PRO |
| 3 | Mosciski LLC | PRO |
+---+-----------------------+-------+
Any idea what could be wrong?
--
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.