这个问题可能已经被问过很多次了。这是我们的版本。我们的 rails 3.1 应用程序中有 user 和 user_level 模型。一个用户有_many user_levels。
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
。上面的回调有什么问题?非常感谢。