我知道您可以使用Shoulda轻松测试一个属于关系:
describe Dog dog
it { should belong_to(:owner) }
end
是否可以使用Shoulda测试更复杂的belongs_to关系?像这样:
class Dog < ActiveRecord::Base
belongs_to :owner, :class_name => "Person", :foreign_key => "person_id"
end
最佳答案
您应该可以使用:
it { should belong_to(:owner).class_name('Person') }
Shoulda的
belong_to
匹配器始终会从关联中读取foreign_key
并测试它是有效的字段名称,因此您无需执行任何其他操作。(请参阅
Shoulda::Matchers::ActiveRecord::AssociationMatcher#foreign_key_exists?
和相关方法)关于ruby-on-rails - 肩膀应该属于class_name和foreign_key,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12234404/