Rails-запрос связанной модели - PullRequest
0 голосов
/ 28 января 2019

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

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

Итак, структура модели выглядит следующим образом:

Region
has_many :locations

Location
belongs_to :region

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

def southwest_general
 Region.where(name: 'Southwest')
end

def southwest_locations
 Location.where(region_id: 5)
end

def all_locations
 southwest_locations.all.map do |loc|
  pin = { icon: pin_path(loc.region_id) }
  loc.attributes.merge(pin)
 end
end

Я действительно смотрю на обновление метода southwest_locations для попадания в модель Region через Locations.Я думал, что смогу что-то сделать:

def southwest_locations
 Location.includes(:regions).where('regions.name =?', 'Southwest').references(:regions)
end

Но это действительно больше поиск, а не запрос в БД, верно?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Я бы сделал это так, что, я думаю, показывает намерение гораздо лучше:

Region.find_by(name: 'Southwest').locations

Я должен отметить, что это выполнит два запроса.

0 голосов
/ 28 января 2019

Места для определенного региона

Location.joins(:region).where(regions: {id: 5}) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...