這個問題可能已被問了很多次。這是我們的版本。我們的rails 3.1應用程序中有user和user_level模型。用戶has_many user_levels。如何在FactoryGirl 3.3中使用回調以在has_many關聯中創建子對象?
class User < ActiveRecord::Base
has_many :user_levels
accepts_nested_attributes_for :user_levels, :allow_destroy => true
validates_presence_of :user_levels
end
class UserLevel < ActiveRecord::Base
belongs_to :user
validates :position, :presence => true
end
以下是我們在FactoryGirl 3.3:
FactoryGirl.define do
factory :user_level do
position "admin"
user
end
factory :user do
name "Test User"
login 'testuser'
password "password1"
factory :user_with_levels do
#user_levels
after(:create) do |user|
FactoryGirl(:user_level, :user => user)
end
end
end
end
u = FactoryGirl.build(:user_with_levels) or u = FactoryGirl.create(:user_with_levels)
在我們的RSpec被使用。後創建回調不起作用,並有錯誤說Validation failed: User levels can't be blank
。上面的回調有什麼問題?非常感謝。
朝着正確的方向邁出的一步。解決方案發布如下謝謝。 – user938363