在Ruby中使用类的正确方法

时间:2014-03-31 16:02:06

标签: ruby-on-rails ruby

我是Ruby的新手 - 我有一个我需要点击的SOAP Web服务,可以获取任意数量的汽车细节 - 我还没有决定用户如何输入细节 - 可能来自屏幕 - 可能是从他们上传的文件等

我正在设计这个,所以无论输入方法是什么都很容易插入。

为了建立对Web服务的请求以进行测试,我执行以下操作:

car = { 'abc:Id' => '1', 'abc:ModelNumber' => 18, 'abc:ES' => 3.0, 'abc:ND' => 4 }

cars= {'mun:Car' => [car] }

所以目前我已经创建了一个汽车类,如下所示 - 注意ES是引擎大小,ND是门的数量 - ModelNumber和Id也是按照请求期望编写的 - 而abc是我需要添加到的特定命名空间参数。

class Car
    def initialize(id, modelNumber, engineSize, noDoors)
      # Instance variables
      @id = id
      @modelNumber = modelNumber
      @engineSize = engineSize
      @noDoors = noDoors
end

我需要更改的值是Id,型号等。我的问题是我如何创建一个新的Coordinate类然后创建一个for循环说并建立一个请求,例如10 Cars保持格式请求,因为我需要它。所以我在min的XML请求看起来像:

<abc:Coordinate>
  <abc:Id>1</mun:Id>
  <abc:ModelNumber>18</abc:ModelNumber>
  <abc:NS>3.0</abc:X>
  <abc:ND>4</abc:Y>
</abc:Coordinate>

但实际上我想传递多个号码或汽车,所以XMl的Sample部分看起来像:

<abc:Coordinate>
  <abc:Id>1</mun:Id>
  <abc:ModelNumber>18</abc:ModelNumber>
  <abc:NS>3.0</abc:X>
  <abc:ND>4</abc:Y>
</abc:Coordinate>
<abc:Coordinate>
  <abc:Id>2</mun:Id>
  <abc:ModelNumber>19</abc:ModelNumber>
  <abc:NS>3.5</abc:X>
  <abc:ND>3</abc:Y>
</abc:Coordinate>
<abc:Coordinate>
  <abc:Id>3</mun:Id>
  <abc:ModelNumber>20</abc:ModelNumber>
  <abc:NS>4.0</abc:X>
  <abc:ND>5</abc:Y>
</abc:Coordinate>

Ruby使用我创建的Car类的最佳方法是什么,但是根据需要构建XML?

0 个答案:

没有答案