Helpers - компьютеры, интернет, программирование

Сортировка имеет много ассоциаций

Я создаю приложение для отелей, и мне хотелось бы отсортировать все отели по цене самого дешевого номера, но, похоже, я не могу достичь своей цели.

Тип номера Модель>>

class Roomtype < ActiveRecord::Base
  mount_uploader :image, RimageUploader
  belongs_to :hotel
  has_many :order_items
  default_scope { order(:price => :desc)}
end

Модель отеля>>

class Hotel < ActiveRecord::Base
  has_many :roomtypes, -> { order(:price => :desc) }
  has_many :hotel_images
  belongs_to :destination
  belongs_to :area
  accepts_nested_attributes_for :hotel_images

  def price
    price = self.roomtypes.last.price
  end

end

Мне нужно default_scope, чтобы отели сортировались по Hotel.find(params[:id]).roomtypes.last.price


Ответы:


1

Для поиска всех отелей, отсортированных по самым дешевым общим ценам на номера в порядке возрастания.

  class Hotel < ActiveRecord::Base
    has_many :roomtypes
    default_scope { joins(:roomtypes).group("roomtypes.hotel_id").order("sum(roomtypes.price) asc") }
  end

Примечание. Таблица типов номеров | идентификатор_отеля | цена | Вы можете изменить имена атрибутов в соответствии с требованиями вашего кода.

С помощью Диксита Патель

04.04.2017

2
  class Roomtype < ActiveRecord::Base
      mount_uploader :image, RimageUploader
      belongs_to :hotel
      has_many :order_items
      default_scope { order(:price => :desc)}
    end

Я думаю, что порядок default_scope должен быть возрастающим, так как вы хотите, чтобы цены были отсортированы от меньшего к большему.

default_scope { order(:price => :asc)}

Тогда Hotel.first.room_types должен дать вам желаемый результат.

01.04.2017
  • Я не говорю о сортировке по типу номера. 02.04.2017
  • Я хочу, чтобы "ОТЕЛЬ БЫЛ СОРТИРОВАН ПО САМЫМ ДЕШЕВЫМ ТИПАМ НОМЕРОВ" 02.04.2017
  • То есть; в каждом отеле есть много типов номеров с разными ценами , но я хочу, чтобы отели сортировались по цене наименьшей цены за номер 02.04.2017

  • 3

    Во-первых, типы номеров отсортированы по цене.

    class Roomtype < ActiveRecord::Base
        belongs_to :hotel
        default_scope { order(:price => :desc)}
    end
    

    Итак, отели last roomtype это cheapest.

    Я получил именно то, что хотел; sorting the list of Hotels by it's cheapest roomtype путем перебора с использованием массива

    class HotelsController < ApplicationController
      def index
        @hotels = Hotel.all.sort_by{ |u| u.roomtypes.last.price }
      end
    end
    

    ЭТО ЛУЧШЕЕ РЕШЕНИЕ ДЛЯ МЕНЯ!

    04.04.2017
    Новые материалы

    Интуитивное понимание тензоров в машинном обучении
    Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

    Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
    Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

    Почему объяснимость так важна прямо сейчас?
    По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

    Анимированный математический анализ
    Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

    Создание простого слайдера изображений с помощью JavaScript
    Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

    Создание базы данных с помощью супергероя «Python»
    В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

    ИИ для чайников: руководство для начинающих по пониманию будущего технологий
    Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..