0
每個用戶有許多SaleItems
和許多NeededItems
。我想查詢用戶1的SaleItem名字,看看其中是否也有類似的名字,以用戶2的NeededItems(「名」是唯一的屬性)Rails:基於來自另一個陣列的記錄(字符串)查詢數組
@needed_item_of_user2 = NeededItem.where("user_id = ?", 2).first
# "Pikachu Pokemon card"
@sale_items_of_user1 = SaleItem.where("user_id = ?", 1)
# "Baseball cards", "Water Heater", "Pikachu doll", "Squirtle Pokemon card"
@matching_sale_items = @[email protected]_item_of_user2.name
# It should output either "Squirtle Pokemon card" (high accuracy) or
# all except "Water Heater" (low accuracy)
我應該使用什麼方法來獲得@matching_sale_items?
精確的匹配
我已經試過:基於How do I search within an array of hashes by hash values in ruby?
和
@matching_sale_items = @sale_items_of_user1.select do |sale|
sale["name"] == @needed_item_of_user2.name
end
@matching_sale_items = @sale_items_of_user1.map do |a|
a.name.downcase
end.grep(/#{@needed_item_of_user2.name.downcase[0,4]}/)
# outputs strings
將來,我想使用該方法來查詢SaleItems表與NeedItems表的匹配。
感謝勇氣。我發現這一個搜索數組非匹配的匹配https://stackoverflow.com/questions/2220423/case-insensitive-search-in-rails-model '@matched_items = user1.sale_items.where(「LOWER(name )ILIKE?「,」%#{@ needed_item_of_user2.name.downcase [0,5]}%「)' –