我試圖解決一個問題。Activerecord與多個字符串作爲鍵的關係
我有一個包含大約10.000條記錄的產品模型。這些記錄來自一些在線商家供稿,並且屬性之間有category_name
。
#<Offer id: 1, external_id: "[\"000002151\", \"Caffettiera Bialetti Dama nuova 1 t...", provider_id: 1, product_title: "Caffettiera Bialetti Dama nuova 1 tazza", product_description: "Ricarica caffè: Caffè macinato; Tipologia: Caffett...", external_model: "DAMA NUOVA", sku: "000002151", mpn: "0002151", ean: "8006363021517", category_code: "MFF", category_name: "Macchine da caffè">
的問題是,類別名稱是不是每個mercant獨特:一個商人的彩電品類是一個簡單的「LED電視」,另一個是「LCD電視」。
在我的儀表板中,我需要篩選一個類別,因此我創建了一個類別模型。我有十大類,每一個「宏觀」的類別包括很多category_name
基本上我的類別遷移
create_table :categories do |t|
t.string :name, null: false
t.text :subcategories, array: true, default: []
end
我TV & Monitor
類別都有一個子類別屬性,它是一個數組,數組裏面我有外部商戶爲電視定義的各類分類。
['OLED TV', 'LCD TV', 'TV', ...]
如果我使用
Product.where(category_name: category.subcategory)
irb(main):005:0> Offer.where(category_name: ["Mini Micro Hi Fi e boombox", "Radio", "Sbattitori"])
Offer Load (2.2ms) SELECT "offers".* FROM "offers" WHERE "offers"."category_name" IN ('Mini Micro Hi Fi e boombox', 'Radio', 'Sbattitori') LIMIT $1 [["LIMIT", 11]]
查詢返回我的所有產品。但是我想創建一個關係,我希望category.products
可以將category_name
包含在我的subcategories
陣列中的所有產品返回給我。
我該怎麼辦?
你可以複製得到'Product.where(CATEGORY_NAME:category.subcategory)你的SQL查詢'? – AntonTkachov
@AntonTkachov添加了查詢,型號名稱爲Offer而非Product –