Tag: fixtures

如何在rails中创建具有外键别名的灯具?

我有两个模型, App和User ,其中App有一个创建者是User 。 # app.rb class App < ActiveRecord::Base belongs_to :creator, class_name: 'User' end # user.rb class User < ActiveRecord::Base has_many :apps, foreign_key: "creator_id" end 我如何为此创建灯具? 我试过了: # apps.yml myapp: name: MyApp creator: admin (User) # users.yml admin: name: admin 但这不起作用,因为关系是别名外键,而不是多态类型。 省略创建者行中的(User)也不起作用。 我已经看过几个关于外键和灯具的线程,但没有一个真正回应这个。 (许多人建议使用factory_girl或机械师或固定装置的其他替代品,但后来我在其他地方看到他们有类似或其他问题)。

如何制作has_many:通过与灯具的关联?

我不能使用factory_girl因为我正在测试太阳黑子,需要真正的数据库。 编辑 :不。 它可以与太阳黑子一起使用。 我错了。 如何在灯具中构建has_many:through(又名多对多)关联? 我谷歌并得到一个无效的解决方案 编辑 : 最后我使用factory_girl。 我google-copy-paste一个片段: factory :tagging do question { |a| a.association(:question) } tag { |a| a.association(:tag) } end (问题has_many标签通过标签,反之亦然) 它运作良好。 但它是什么? factory_girl的自述文件并不意味着这种语法。 有人能解释一下吗

Rails不会找到CSV固定装置

我正在尝试使用CSV灯具,但是当我做rake db:fixtures:load ,它抱怨test/fixtures缺少YAML文件。 当灯具在YAML中并且文件以.yml结尾时, .yml 。 此外,当我查看activerecord-3.2.3/lib/active_record/fixtures.rb中的代码时,我完全看不到对CSV处理的引用。 看来fixtures.rb只知道如何使用YAML灯具。 这是什么? CSV固定装置已被弃用?

在每个示例之后,factory_girl + rspec似乎没有回滚更改

与此处描述的问题类似: http : //rpheath.com/posts/411-how-to-use-factory-girl-with-rspec 简而言之(缩短代码): spec_helper: config.use_transactional_fixtures = true config.use_instantiated_fixtures = false factories.rb: Factory.define :state do f.name “NY” end 在我的规范中 before(:each) do @static_model = Factory(:state) # with validate uniqueness of state name end 错误: 重复的条目名称“NY”等。 问题:在每个规范示例之前,不应该rspec清除数据库,因此不会抛出重复的条目错误吗?