Я пытаюсь преобразовать мой HABTM в has_many через отношения. Иногда приходится подключать одни и те же модели по-разному. Например, чтобы указать разные роли для авторов.
С HABTM я бы сделал это через объявление опции class_name. Так же как: -
class Project < ActiveRecord::Base
has_and_belongs_to_many :curators, :class_name => :author, :through => :projects_curators
end
class ProjectsCurator < ActiveRecord::Base
attr_accessible :project_id, :author_id
belongs_to :project
belongs_to :author
end
class Author < ActiveRecord::Base
has_and_belongs_to_many :projects, :through => :projects_curators
end
Но когда я превращаю все в has_many через:
class Project < ActiveRecord::Base
has_many :project_curators
has_many :curators, :class_name => :author, :through => :project_curators
end
class ProjectCurator < ActiveRecord::Base
attr_accessible :project_id, :author_id
belongs_to :project
belongs_to :author
end
class Author < ActiveRecord::Base
has_many :project_curators
has_many :projects, :through => :project_curators
end
, я получаю: Could not find the source association(s) :curator or :curators in model ProjectCurator. Try 'has_many :curators, :through => :project_curators, :source => <name>'. Is it one of :author or :project?
Когда я добавляю :source
has_many :curators, :class_name => :author, :through => :project_curators, :source => :author
Я получаю:
uninitialized constant Project::author
Как мне заставить это работать? Заранее большое спасибо!