spi*_*ike 5 ruby-on-rails ruby-on-rails-3
我想设置一些has_many,:通过使用fixture来测试rails 3.1中的对象.
如果您查看关联的文档作为示例,我想知道如何将程序集分配给部件.我发现这样做的唯一方法是在它自己的文件中显式创建清单对象,但是如果我对该模型的默认值感到满意,而我想要指定的是部件/汇编ID,那么就是直接做的方法?
我想要的东西:
my_assembly:
parts: my_first_part, my_second_part
Run Code Online (Sandbox Code Playgroud)
如果您执行HABTM,则此方法有效,但如果您具有显式连接模型,则无效.
假设您想要或必须坚持使用灯具,那么如果您从HABTM切换到has_many:through关系,那么您将无法再使用短内联列表.您必须为:through模型创建单独的fixture文件.
Mar*_*ser -50
永远、永远不要将 Rails 固定装置用于任何用途。
我再说一遍:永远、永远不要使用 Rails 固定装置来做任何事。
它们很危险、很麻烦,并且会让你的测试泄漏状态。它们不适合编写正确的测试。最好的情况是,您得到的测试看起来像是正确编写的,但具有隐藏的依赖项。Rails 团队对这个功能的理解是 100% 错误的,我希望他们能从 Rails 中删除它,这样人们就不会被诱惑使用它。
相反,安装factory_girl_rails并使用工厂按需创建测试记录:
Factory :assembly, :parts => [Factory(:part, :name => 'first'), Factory(:part, :name => 'second')]
Run Code Online (Sandbox Code Playgroud)