FactoryGirl 给我一个错误
FactoryGirl giving me an error
我得到了这个模型:
rails g model Absence user:references company:references from:date to:date date:date category:integer hours:decimal remarks
这还会生成:
FactoryGirl.define do
factory :absence do
user nil
company nil
from nil
to nil
date nil
category 0
hours "8.00"
remarks "MyString"
end
end
我将开始、结束和日期设置为零,因为它是:开始和结束或某个日期。
当我在我的规范中尝试这个时:
@absence = create(:absence, user: @company.owner, from: "2015-09-10", to: "2015-09-10", hours: 4)
我收到此错误消息:
NoMethodError:
undefined method `from=' for #<Absence:0x007f81f5494b88>
有什么问题吗?
编辑:
当我删除
from nil
从 factories/absences.rb 我在下一个字段 (to) 中获取它,删除它后我在类别上看到错误消息。
编辑2:
型号:
class Absence < ActiveRecord::Base
belongs_to :user
belongs_to :company
enum type: {holiday: 0, sick: 1}
validates :from, presence: true, if: '!user_id.nil?'
validates :to, presence: true, if: '!user_id.nil?'
validates :date, presence: true, if: '!company_id.nil?'
validates :hours, presence: true, if: '!user_id.nil?'
validates :hours, :numericality => { :greater_than_or_equal_to => 0 }, if: '!user_id.nil?'
validates :category, presence: true, if: '!user_id.nil?'
validates_numericality_of :company_id, allow_nil: true
validates_numericality_of :user_id, allow_nil: true
validate :company_xor_user
validate :to_date_after_from_date
validate :hours_smaller_than_workday
validate :non_overlapping
after_save :calculate_time_checks
after_destroy :calculate_time_checks_delete
终于找到了真正的原因。
起初我使用名为 'type' 的属性创建了 Absence 模型。这已迁移到开发和测试数据库。之后我将其更改为类别并添加了 'from' 和 'to' 并进行了回滚并再次迁移(但不是在测试中!)。
使用撬
require 'pry'; binding.pry
在测试中我做了 Absence.columns 并注意到了差异。
我得到了这个模型:
rails g model Absence user:references company:references from:date to:date date:date category:integer hours:decimal remarks
这还会生成:
FactoryGirl.define do
factory :absence do
user nil
company nil
from nil
to nil
date nil
category 0
hours "8.00"
remarks "MyString"
end
end
我将开始、结束和日期设置为零,因为它是:开始和结束或某个日期。
当我在我的规范中尝试这个时:
@absence = create(:absence, user: @company.owner, from: "2015-09-10", to: "2015-09-10", hours: 4)
我收到此错误消息:
NoMethodError:
undefined method `from=' for #<Absence:0x007f81f5494b88>
有什么问题吗?
编辑: 当我删除
from nil
从 factories/absences.rb 我在下一个字段 (to) 中获取它,删除它后我在类别上看到错误消息。
编辑2: 型号:
class Absence < ActiveRecord::Base
belongs_to :user
belongs_to :company
enum type: {holiday: 0, sick: 1}
validates :from, presence: true, if: '!user_id.nil?'
validates :to, presence: true, if: '!user_id.nil?'
validates :date, presence: true, if: '!company_id.nil?'
validates :hours, presence: true, if: '!user_id.nil?'
validates :hours, :numericality => { :greater_than_or_equal_to => 0 }, if: '!user_id.nil?'
validates :category, presence: true, if: '!user_id.nil?'
validates_numericality_of :company_id, allow_nil: true
validates_numericality_of :user_id, allow_nil: true
validate :company_xor_user
validate :to_date_after_from_date
validate :hours_smaller_than_workday
validate :non_overlapping
after_save :calculate_time_checks
after_destroy :calculate_time_checks_delete
终于找到了真正的原因。
起初我使用名为 'type' 的属性创建了 Absence 模型。这已迁移到开发和测试数据库。之后我将其更改为类别并添加了 'from' 和 'to' 并进行了回滚并再次迁移(但不是在测试中!)。
使用撬
require 'pry'; binding.pry
在测试中我做了 Absence.columns 并注意到了差异。