Exi*_*iRe 1 rspec ruby-on-rails ruby-on-rails-3.2 factory-bot
我有用户和教师模型.教师belongs_to用户和用户has_one教师.我也有工厂女孩文件中的代码:
Factory.define :user do |user|
user.user_login "Another User"
user.user_role "admin"
user.password "foobar"
end
Factory.sequence :user_login do |n|
"person-#{n}"
end
Factory.define :teacher do |teacher|
teacher.teacher_last_name 'Last'
teacher.teacher_first_name 'First'
teacher.teacher_middle_name 'Middle'
teacher.teacher_birthday '01.11.1980'
teacher.teacher_category 'First category'
teacher.teacher_sex 'm'
end
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的规范中创建一名教师时:
@teacher = Factory(:teacher)
Run Code Online (Sandbox Code Playgroud)
然后我收到错误:
Failure/Error: @teacher = Factory(:teacher)
ActiveRecord::RecordInvalid:
Validation failed: User can't be blank
Run Code Online (Sandbox Code Playgroud)
据我所知,这是因为我不告诉Factory我的老师belongs_to用户.我该如何解决这个问题?
您应该定义关联:
Factory.define :teacher do |teacher|
...
teacher.user
end
Run Code Online (Sandbox Code Playgroud)
Factory Girl有精彩的教程,我建议你看一下.
PS为什么要将这些奇怪的前缀(user_,teacher_)添加到模型属性中?它看起来很丑陋,所以你肯定做错了什么.
| 归档时间: |
|
| 查看次数: |
3539 次 |
| 最近记录: |