天天看点

fixtures --- 构建关系表数据

在写测试时很多时候我们都会利用fixtures构造数据,特别在构造关系表的数据时就显得特别麻烦。

我在看railscast 看到一种比较简单的方法,不用构造关系表,觉得有用,特别记录下来,便于以后查找:

#####  /models/products.rb

class Product < ActiveRecord::Base

belongs_to :user

has_and_belongs_to_many :categories

end 

##### /spec/fixtures/users.yml

lilei:

id: 1

name: lilei

hanmeimei:

id: 2

name: hanmeimei 

##### /spec/fixtures/categories.yml

furnitur:

id: 1

name: Furniture

electronics:

id: 2

name: Electronics 

##### /spec/fixtures/products.yml

couch:

id: 1

name: couch

price: 199.00

user: lilei #不再使用 user_id: 1

categories: furniture

computer:

id: 2

name: computer

price: 366.00

user: hanmeimei #不再使用 user_id: 2

categories: furniture,electronics 

用了categories 就直接省去了建立products_categories 这个中间表的数据:

##### /spec/fixtures/products_categories.yml

couch_furniture:

product_id: 1

category_id: 1

computer_furniture:

product_id: 2

category_id: 1

computer_electronics:

product_id: 2

category_id: 2 

继续阅读