我想通過使用rails的單個休息調用來創建複雜的休息對象實例。 在下面的示例情況中,當我使用參數散列對Person調用new時,我在控制器中出現錯誤。在一個單獨的休息調用中創建休息複雜的資源實例
我看到的ActiveSupport :: HashWithIndifferentAccess而不是
從測試通過哈希散列包含對象的數組,一個PhoneNumber時獲得意外的類型錯誤,而控制器動作參數創建的ActiveSupport :: HashWithIndifferentAccess對象。
- 任何修復錯誤的建議嗎?
- 有沒有一種更簡單的方法來創建複雜的activerecord對象與一個單一的休息電話。
即型號:
class Person < ActiveRecord::Base
has_many :phone_numbers , :autosave => true
class PhoneNumber < ActiveRecord::Base
belongs_to :person
person_controller_test.rb
test "should create person" do
newperson=Person.new(:name => "test")
newperson.phone_numbers << PhoneNumber.new(:number => "123-4567")
person_string= newperson.to_xml(:include => :phone_numbers)
person_hash=Hash.from_xml(course_string)
person_hash2=person_hash['person']
post :create, :person => person_hash2, :format => "xml"
assert_response :success
end
person_controller.rb
def create
@person = Person.new(params[:person])