我知道您可以使用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/

10-11 03:01