MatrixRETS 在 Rails 上使用 Ruby 获取数据
MatrixRETS get data with Ruby on Rails
我正在 房地产 项目 Ruby Rails 基于 佛罗里达州 ,没有关于 matrixrets.swflamls
API 的更多详细信息,但我需要从那里的数据库中获取数据并保存到我自己的数据库中,以便定期更新和创建数据。
我有以下用于获取数据的配置
client = Rets::Client.new({
login_url: 'http://matrixrets.swflamls.com/rets/Login.ashx',
username: 'XXXXXXXXXXXXXX',
password: 'XXXXXXXXXXXXXX'
})
获取数据的查询,此查询复制自此 tutorial,本教程相关但不完全适合我的 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'
我有两个问题:
如何从数据库中获取数据
如果我得到了数据,那么如何获取所有数据,比如状态等于所有键。
目前没有任何错误也没有获取任何数据
非常感谢
好的,我想你在你的配置部分遗漏了一些东西,如果你得到了 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
})
然后使用 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
看到控制台已经计算出任何数字,如果是然后工作然后继续。
希望对您有所帮助
我正在 房地产 项目 Ruby Rails 基于 佛罗里达州 ,没有关于 matrixrets.swflamls
API 的更多详细信息,但我需要从那里的数据库中获取数据并保存到我自己的数据库中,以便定期更新和创建数据。
我有以下用于获取数据的配置
client = Rets::Client.new({
login_url: 'http://matrixrets.swflamls.com/rets/Login.ashx',
username: 'XXXXXXXXXXXXXX',
password: 'XXXXXXXXXXXXXX'
})
获取数据的查询,此查询复制自此 tutorial,本教程相关但不完全适合我的 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'
我有两个问题:
如何从数据库中获取数据
如果我得到了数据,那么如何获取所有数据,比如状态等于所有键。
目前没有任何错误也没有获取任何数据
非常感谢
好的,我想你在你的配置部分遗漏了一些东西,如果你得到了 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
})
然后使用 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
看到控制台已经计算出任何数字,如果是然后工作然后继续。
希望对您有所帮助