두 개의 테이블, 항목 및 범주와 Items_Categories라는 조인 된 테이블이 있습니다. 내가 가진 한 가지 제한 사항은 항목에 범주가 있어야한다는 것입니다. 내 항목 모델에서many-to-many 관계로 데이터베이스 생성/저장
, 나는이 코드를 가지고 :
카테고리 내 항목 데이터베이스의 열 아니더라도class Item < ActiveRecord::Base
has_many :items_categories
has_many :categories, through: :items_categories
has_many :item_orders
has_many :orders, through: :item_orders
.
class ItemsCategory < ActiveRecord::Base
belongs_to :item
belongs_to :category
end
가 여기 내 분류 모델의 :
가 여기 내 ItemsCategory 모델의
test 'it is valid' do
category = Category.create(name: "hot beverages")
item = category.items.create(title: "fjdkasf", description: "fjakdsf", price: 20901290)
assert item.valid?
end
기본적으로,이 테스트 때문에 실패 : 내 테스트에서
class Category < ActiveRecord::Base
has_many :items_categories
has_many :items, through: :items_categories
end
, 나는이 문제를 가지고 item.categories가 nill이 아닐 때까지 항목을 만들 수 없습니다. 그러나 item_categories에서 항목을 만들 때까지 유효성 검사가 통과되지 않습니다. 그래서 ... 내가 뭘해야하니? 항목이 아직 범주가 없기 때문에 항목을 만들 때 기본적으로 유효성 검사를 통과 할 수 없습니다. 하지만 항목을 만들 때마다 관련 항목이 있는지 확인하려고합니다. 그래서 내가 뭘하니? has_many :through
관계와
'ItemCategory' 및'Item' 모델의 연결 코드 섹션을 게시 해주십시오. 연결에'inverse_of' 옵션이 누락되었습니다. – sled