私は器具の代わりにfactory_girl_railsを使用しています。ここに私のモデルは以下のとおりです。factory_girl_rails:関連付けられた子が作成されたときにファクトリで構築されたモデルインスタンスのhas_many関連が設定されていません
私はこれを行う統合テストでFactory.define :task do |t|
t.association :user
t.association :project
t.after_create {|t| t.user.tasks << t}
t.after_create {|t| t.project.tasks << t}
end
:
class User < ActiveRecord::Base
has_many :tasks
belongs_to :project
end
class Task < ActiveRecord::Base
belongs_to :user
belongs_to :project
end
class Project < ActiveRecord::Base
has_many :users
has_many :tasks
end
はここに関連する工場だ
scenario "user with tasks from one project is assigned another task from the same project" do
user = Factory.create :user
(1..5).each { Factory.create(:task, :user => user, :project => user.project)}
visit_project_path user.project
correctly_fill_in_new_task_fields
click_button "Create task" #creates a new task for the above user
assert user.tasks.size == 6 #currently fails
end
私が持っている問題は、シナリオの後に実行されるということですuser.tasks.size == 5
でも、Task.where(:user_id => user.id).size == 6
である。私はどんな助けにも感謝しています。
ニースキャッチ、ありがとう。 – James