0

これが私のrspecコードです:-

 it "should match with valid address" do
    get :index, Devise.token_authentication_key => @user.authentication_token, business_id: @business2.id
    expect(response.status).to eq(200)
    expect(response.body).to eq([@location].to_json(LocationFinder::API_PARAMS.merge(:root => false)))
  end

期待される:

 "[
   {
   \"address\":\"1120 Milky Way\",
   \"business_id\":1,
   \"city\":\"Cupertino\",
   \"latitude\":\"2.4\",
   \"longitude\":\"2.9\",
   \"name\":\"Joe's Diner\"
   }
  ]"

得た:

 "[
   {
   \"address\":\"1120 Milky Way\",
   \"business_id\":1,
   \"city\":\"Cupertino\",
   \"latitude\":\"2.4\",
   \"longitude\":\"2.9\",
   \"name\":\"Joe's Diner\",
   \"distance\":712.7948793
   }
  ]"

ハッシュ値を含むこの配列から「距離」フィールドを削除するにはどうすればよいですか。だから私のテストは成功します。

4

1 に答える 1

3

keyメソッドを使用して、そのハッシュからa を削除できdeleteます。たとえば、次のようになります。

require 'json'
a = "[
   {
   \"address\":\"1120 Milky Way\",
   \"business_id\":1,
   \"city\":\"Cupertino\",
   \"latitude\":\"2.4\",
   \"longitude\":\"2.9\",
   \"name\":\"Joe's Diner\",
   \"distance\":712.7948793
   }
  ]"

  a = JSON.parse(a)
  a[0].delete "distance"
  p a

  #output:

  # [{"address"=>"1120 Milky Way", "business_id"=>1, "city"=>"Cupertino", "latitude"=>"2.4", "longitude"=>"2.9", "name"=>"Joe's Diner"}]
于 2013-04-01T14:00:40.873 に答える