0

私は Rails3.2.8 を使用していくつかの練習を行っています。これが私のモデルです。

class Incident < ActiveRecord::Base
  attr_accessible :category, :user, :status, :reference, :location
  belongs_to :user
  has_one :location
  accepts_nested_attributes_for :location

  validates_presence_of :location, :user, :category


end

class Location < ActiveRecord::Base
  attr_accessible :latitude, :longitude, :street
  belongs_to :incident
end

これが私のテストです:

require 'spec_helper'

describe Incident do
  before (:each) do
    @user = create(:user, :name => "user1")
    @incident_data = {:category => "House Break in", :user => @user,
                      :location => {:latitude => "-28.1940509", :longitude => "28.0359692",
                                    :street => "abc name"}}
  end
  describe "After create Incident successfully" do
    it "should create location" do
      incident = Incident.create(@incident_data)

      expect(incident.location.latitude).to eq("-28.1940509")
    end
  end
end

私がやりたいことは、Incident オブジェクトを作成するときに Location オブジェクトを自動的に作成することです。しかし、テストは次の理由で失敗しました。

失敗/エラー: インシデント = Incident.new(@incident_data)

ActiveRecord::AssociationTypeMismatch:

場所 (#70156311891820) が必要で、ハッシュ (#70156307112200) を取得しました

何か案は?

4

1 に答える 1