簡體   English   中英

Rails:通過非常嵌套的關聯進行搜索

[英]Rails: search through a very nested associations

我正在嘗試尋找一個到達機場IATA代碼等於指定航班的航班,如下所示:

 create_table "flights", force: :cascade do |t|
    t.integer "route_id"
    t.datetime "departure"
    t.datetime "arrival"
    t.decimal "price"
    t.integer "airplane_id"
  end

  create_table "routes", force: :cascade do |t|
    t.integer "departure_airport_id"
    t.integer "arrival_airport_id"
  end

  create_table "airports", force: :cascade do |t|
    t.string "iata_code"
    t.string "icao_code"
    t.string "international_name"
    t.string "localized_name"
  end

從路線到機場的聯系看起來像這樣

class Route < ApplicationRecord
  belongs_to :arrival_airport, :class_name => "Airport"
  belongs_to :departure_airport, :class_name => "Airport"

而且在機場艙位上沒有倒數。 我嘗試了這個

@search_results = Flight
                        .joins(:route)
                        .joins(:arrival_airport)  

你近了

@search_results = Flight
                    .joins(route: :arrival_airport)
                    .where(airports: {iata_code: my_iata_code})

請查閱《 Rails查詢指南》以獲取更多詳細信息。 特別是在12.1.3.1加入嵌套協會(單級)前后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM