如何声明Rails灯具的共享属性?

时间:2014-05-22 11:06:29

标签: ruby-on-rails tdd yaml dry fixtures

我正在尝试使用灯具和MiniTest开始(Rails)测试。 该应用程序正在不断发展,因此以后可能会在模型中集成其他属性。 有没有办法声明“默认”属性或所有其他灯具中使用的基本灯具类型?

例如:

base_user:
  name: testy testicle
  mail: some_mail@example.com
  gender: male

user1:
  avatar: some_avatar #add
  admin: false #add

user2:
  admin:true #add
  gender: female #overwrite

所以 user1 & user2 共享 base_user 的属性? 也许甚至可以共享属性并在必要时覆盖?

我想声明基本属性以传递验证等,并且只想在其他灯具中声明特殊属性。 当新属性变得必要时,我可以将它们添加到base_fixture,而不是更新模型的所有灯具..

1 个答案:

答案 0 :(得分:1)

您可以使用YAMLs Anchors and References工具。这看起来像这样:

base_user: &BASE_USER # <- Declare an anchor named BASE_USER
  name: # etc.

user1:
  <<: *BASE_USER # <- Reference the anchor, bringing all the attributes of base user into user1
  avatar: # etc.
相关问题