aşağıdaki RSpec parçasını inceleyin:RSpec: bir hashın tuşlarıyla sembol anahtarlı bir hash ile karşılaştırılması?
it "should match" do
{:a => 1, :b => 2}.should =~ {"a" => 1, "b" => 2}
end
bir karma anahtarlar için semboller kullanır ve diğer tuşlar için dizeleri kullandığından, bu test başarısız olur. Benim durumumda, bir karma ayrıştırılmış bir JSON nesnesi, diğeri ise nesneyi oluşturan karmadır. Onları eşit olarak karşılaştırmak isterim.
Kendi eşleştiricimi yazmadan veya her iki karma anahtarın da dize anahtarlarına zorlamadan önce, bu (ortak) durumu ele alan bir eşleme veya teknik var mı?
Bu raylar yöntemi –
@John sembol tuşlarıyla karma üzerinde
with_indifferent_access
kullandığınızdan emin yakut olmamasına dikkat edin Aşağıda hashrocket Yakut sözdizimi ve RSpec sözdizimi bekliyoruz ile bir örnektir .s.in.co: evet, fakat şimdi ActiveSupport'un bağımsız olarak kullanılabileceği (küçük altkümelerini yükleme yeteneği ile), bu kabul edilebilir bir cevaptır. –