I have rich many to many relationship between projects and users. My project model has:
has_many :project_members, dependent: :destroy, foreign_key: 'gallery_id'
has_many :members, through: :project_members,
class_name: 'User',
foreign_key: 'member_id'
user model:
has_many :project_members, dependent: :destroy, foreign_key: 'member_id'
has_many :member_projects, through: :project_members,
source: :member_project
and project_member model:
belongs_to :member_project, foreign_key: 'gallery_id', class_name: 'Project'
belongs_to :member, foreign_key: 'member_id', class_name: 'User'
I wrote project factory as:
FactoryGirl.define do
factory :project_member do
association :project
association :user
role 'owner'
end
end
However it gives me:
> undefined method `project=' for #<ProjectMember:0x00000006f66048>
if I write following:
FactoryGirl.define do
factory :project_member do
association :member_project, foreign_key: 'gallery_id', class_name: 'Project'
association :member, foreign_key: 'member_id', class_name: 'User'
role 'owner'
end
end
it says:
Factory not registered: member_project
I am not sure how do I define many to many through factory object.
Assuming you have factories for Project and User