MatrixRETS получают данные с помощью Ruby on Rails

Я работаю над проектом недвижимости с Ruby on Rails, основанным во Флориде, подробностей о matrixrets.swflamls API, но мне нужно извлекать данные из этой базы данных, сохранять в моей собственной базе данных на регулярной основе для обновления и создания данных.

У меня есть следующая конфигурация для получения данных

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, равные всем ключам.

В настоящее время нет ни одной ошибки, также не получая никаких данных

Много ценится

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
})

Затем обновите ваш запрос, используя no_records_not_an_error метод для, если не найти данные, то не отображается какая-либо ошибка, иначе будет отображаться нулевая ошибка, см. ниже

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

Посмотрите на консоли, посчитали любое число, если да, то работаете, а затем двигайтесь вперед

Надеюсь, поможет

Другие вопросы по тегам