0

我正在使用基于Florida的 Ruby on Rails 进行房地产项目,没有关于API 的更多详细信息,但我需要从那里的数据库中获取数据并保存到我自己的数据库中,以便定期更新和创建数据。matrixrets.swflamls

我有以下用于获取数据的配置

client = Rets::Client.new({
    login_url: 'http://matrixrets.swflamls.com/rets/Login.ashx',
    username: 'XXXXXXXXXXXXXX',
    password: 'XXXXXXXXXXXXXX'
})

获取数据的查询,此查询从本教程复制,本教程与我的 API 相关但不准确

properties = client.find (:all), {
    search_type: 'Property',
    class: 'RES',
    querytype: 'DMQL2',
    Format: 'COMPACT',
    query: "(YearBuilt=1900+), (Status=A)",
}

<% properties.each do |data| %>
   <%= data['Bedrooms'] %>
<% end %>

我有一些用于活动、待处理等属性的键......下面

'A', 'AC', 'AP', 'AS', 'I', 'P', 'PC', 'R', 'T', 'W'

我有两个问题:

  1. 如何从那里的数据库中获取数据

  2. 如果我得到数据,那么如何获取所有数据,例如 Status 等于所有键。

目前没有任何错误也没有获取任何数据

非常赞赏

4

1 回答 1

1

好的,如果您获得RETSMD以查看您发现的 API 的详细信息,我认为您在配置部分中遗漏了一些内容,version我认为您错过了版本,请参见下文。

client = Rets::Client.new({
      login_url: 'http://matrixrets.swflamls.com/rets/Login.ashx',
      username: 'XXXXXXXXXX',
      password: 'XXXXXXXXXX',
      version: 'RETS/1.7.2' #=> Or which compatible yours like 1.5 or something
})

然后使用 if not find data 然后不显示任何错误的方法更新您的查询no_records_not_an_error,否则将显示 nil 错误,请参见下文

properties = client.find (:all), {
    no_records_not_an_error: true,
    search_type: 'Property',
    class: 'RES',
    querytype: 'DMQL2',
    Format: 'COMPACT',
    query: "(YearBuilt=1900+), (Status=A})",
}

那你的问题 1

希望这是工作

现在问题2

您可以声明一个数组并将所有键保留在数组中,如下所示

    arr = ['A', 'AC', 'AP', 'AS', 'I', 'P', 'PC', 'R', 'T', 'W']

然后更新您的查询

for i in 0...arr.count
    properties = client.find (:all), {
        no_records_not_an_error: true,
          search_type: 'Property',
          class: 'RES',
          querytype: 'DMQL2',
          Format: 'COMPACT',
          query: "(YearBuilt=1900+), (Status=#{arr[i]})",
    }

    puts properties.count #=> count for every status
end

如果是,请查看控制台是否计算了任何数字,然后工作,然后继续前进。

希望能帮助到你

于 2018-01-19T06:40:42.693 回答