Ошибка ассоциации в пространстве имен с использованием Ruby on Rails 3 - PullRequest
0 голосов
/ 13 января 2011

В 'ROOT_RAILS / models / users / account.rb' у меня есть

has_one :profile,
  :primary_key => "app_profile_id",
  :foreign_key => "id",
  :dependent => :destroy

В 'ROOT_RAILS / models / apps / profile.rb' у меня есть

belongs_to :user,
  :primary_key => "id",
  :foreign_key => "app_profile_id"

В 'ROOT_RAILS / config / rout.rb' у меня есть

namespace "users" do
  resources :accounts
end

namespace "app" do
  resources :profiles
end

Когда я пытаюсь получить доступ к @ account.profile (@account - это учетная запись ActiveRecord), например, в файле .html.erb, я получаю эту ошибку:

uninitialized constant Users::Account::Profile

В чем / где проблема?

Ответы [ 2 ]

2 голосов
/ 13 января 2011

Следующее должно достичь того, что вы пытаетесь сделать:

routes.rb:

resources :users do
  resource :profile
end

accounts.rb:

has_one :profile, :primary_key => "app_profile_id",
                  :dependent => :destroy

profile.rb:

belongs_to :user,
           :foreign_key => "app_profile_id"

Убедитесь, что в таблице профилей также есть столбец для внешнего ключа.

0 голосов
/ 14 января 2011

После небольшой головной боли я нашел решение:

has_one :profile,
:class_name => "Apps::Profile",
:primary_key => "app_profile_id", 
:foreign_key => "id",
:dependent => :destroy
...