ActiveRecord ищет похожие записи, чтобы показать выбор страницы (Rails 5) - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть страница показа, сгенерированная из очень большой базы данных, запрашиваемая @listing = Listing.find(params[:listing_id]) в контроллере. Внизу страницы у меня также есть ссылки на три других списка; на данный момент их запрашивает @listings = Listing.last(3), но я пытаюсь выбрать три похожих списка - по сообществу или по диапазону цен.

пример - Listing.where(:price => 500000..600000).limit(2)

Однако ... Я в растерянности относительно того, как это сделать по сравнению с активным списком страниц. Как я могу выбрать списки из того же сообщества или, например, в определенном ценовом диапазоне той же записи? Если бы кто-то мог подсказать мне, как установить это соединение, я был бы признателен (я довольно младший, но я действительно учусь пользоваться ActiveRecord и хочу расширить, что я могу с ним сделать).

Прежде чем кто-нибудь спросит, вот моя схема:

 create_table "listings", force: :cascade do |t|
    t.string   "mls"
    t.datetime "created_at",     null: false
    t.datetime "updated_at",     null: false
    t.string   "community"
    t.string   "description"
    t.integer  "price"
    t.string   "status"
    t.string   "address"
  end

1 Ответ

0 голосов
/ 25 апреля 2018

Похоже, вам нужно что-то вроде этого:

price_range = (@listing.price - 100)..(@listing.price + 100)
Listing.where(price: price_range, community: @listing.community).limit(3)

Вы были на правильном пути!

...