我一直在努力設置has_many關係使用工廠女孩。 我有兩個模型的課程和類別,一門課程可以有很多類別,我有兩個工廠的課程和類別。has_many通過與工廠女孩錯誤時運行測試
我有這三種模式
class Course < ActiveRecord::Base
extend FriendlyId
friendly_id :title, use: [:slugged, :history]
has_many :categorisations
has_many :categories, :through=> :categorisations
belongs_to :partner
belongs_to :user
# validates_uniqueness_of :title
validates :title, presence: true
# validates :start_date, presence: true
# validates :duration, presence:true
# validates :state, presence:true
validates :categories, length: { minimum: 1 , message:"please select"}
validates :partner_id, presence: true, allow_nil: false
end
end
class Category < ActiveRecord::Base
has_many :categorisations
has_many :courses, :through=> :categorisations
belongs_to :user
#validation
validates :name, presence: true , uniqueness: { scope: :name }
end
class Categorisation < ActiveRecord::Base
belongs_to :category
belongs_to :course
end
工廠在indiviual文件
FactoryGirl.define do
factory :course do |f|
f.title "Introduction to Accounting short course"
f.start_date "2014-02-27 00:00:00"
f.duration "10 WEEKS ONLINE"
partner
categorisation
end
# join table factory - :category
factory :categorisation do |categorisation|
categorisation.association :course
categorisation.association :category
end
end
範疇廠
FactoryGirl.define do
factory :category do |f|
f.name "Marketing"
end
end
我得到的測試運行時的錯誤是:
霸rtner有一個有效的工廠當然 故障/錯誤:期待(FactoryGirl.create(:當然)),以be_valid 的ActiveRecord :: RecordInvalid: 驗證失敗:名稱已採取
我想要做的就是創建一個具有一個或多個類別的課程,我不確定我在這裏做錯了什麼,但我需要課程工廠有效。我知道我的分類工廠是有效的。
它似乎嘗試創建一個類兩次,這就是爲什麼它出現的名稱錯誤已經存在。
在那裏爲'#課程任何title'驗證?我認爲這個問題出現在你的「課程」中。你能提供課程模型的錯誤嗎? – xlembouras
該模型的測試沒有它通過的關聯,我不認爲它是標題 –
是否有標題的唯一性驗證器? – xlembouras