я получил эту модель:FactoryGirl дает мне ошибку
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>
Что может быть не так?
Edit: Когда я удалить
from nil
из заводов/absences.rb я получаю его на следующее поле (к) и после удаления, что я вижу сообщение об ошибке на категории ,
Edit2: Модель:
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
Если вы просто делаете '@absence = create (: отсутствие, пользователь: @ company.owner, to:" 2015-09-10 ", часы: 4)' без 'from', это работает? – patrickh003
Как выглядит ваша модель? –
Можете ли вы опубликовать свой код модели? –