我有一个网络服务,为几个不同的客户提供广告.广告的结构因客户端而异,因此,我通过客户名称为我的模型和控制器使用名称空间来区分广告.从高层看,它看起来像这样:
'app/models/client1/ad.rb'
class Client1::Ad < ActiveRecord::Base
attr_accessible :title, :description
end
Run Code Online (Sandbox Code Playgroud)
'app/models/client2/ad.rb'
class Client2::Ad < ActiveRecord::Base
attr_accessible :title, :description, :source
end
Run Code Online (Sandbox Code Playgroud)
实际上,这些模型更复杂并且具有关联性,但这不是重点.
我正在使用rspec-rails 2.4.0和factory_girl_rails 1.0.1编写一些单元测试,并且我的所有工厂都运行良好.但是,我无法为命名空间模型定义工厂.我尝试过类似的东西:
Factory.define :client1_ad, :class => Client1::Ad do |ad|
ad.title "software tester"
ad.description "Immediate opening"
end
Run Code Online (Sandbox Code Playgroud)
和
Factory.define :client2_ad, :class => Client2::Ad do |ad|
ad.title "software tester"
ad.description "Immediate opening"
ad.source "feed"
end
Run Code Online (Sandbox Code Playgroud)
它没有完成这项工作.我环顾四周,但我看到的每个例子都使用非命名空间的模型.有人有主意吗?任何输入都非常感谢.