J'ai dans mon champ de table TravelIdeas
country_trips
, qui comprend la liste des pays.Ruby on rails/Active Record Query: retour si field/record with array ne contient pas d'élément
#<TravelIdea:0x007faa7bec40f0> {
:id => 9,
:idea_key => "romantic",
:idea_type => nil,
:cost => 2000,
:created_at => Mon, 10 Jul 2017 07:48:49 UTC +00:00,
:updated_at => Mon, 16 Oct 2017 08:10:47 UTC +00:00,
:country_trips => [
[0] "PL"
],
:available_languages => [
[0] "pl"
]
}
voyages locaux a nul en :country_trips
, donc je peux les ignorer:
idea.where.not(country_trips: nil) if country.present?
J'ai mon pays de destination de l'utilisateur, donc je veux lui montrer toutes les idées de voyage qui contient son pays rêvé.
Il serait STH comme serveur SQL CONTIENT (colonne, « pays »)
C'est probablement pas LIKE
parce que cela ne concerne pas correspondant à 1 pays 1 pays.
Par exemple country = user.destination_country
moyens: country = "PL"
mais
:country_trips => [
[0] "PL",
[1] "DE"
],
Je cherche qqch comme
TravelIdea.where(country_trips: country)
qui renverra toutes les idées de voyage qui ont cette pays en nombre ry_trips tableau: P
Avez vous utilisez 'serialize: country_trips' de Rails ou avez-vous utilisé votre système intégré RDMS pour stocker des tableaux? (comme ceci pour postgres https://www.postgresql.org/docs/9.1/static/arrays.html) – MrYoshiji
J'utilise postgres tableau – eudaimonia
essayez ceci 'TravelIdea.where ('country_trips = any (?)', ' PL ') '(vous pouvez google * postgres array rails * et vous trouverez des informations utiles comme celle-ci https://coderwall.com/p/sud9ja/rails-4-the-postgresql-array-data-type) – MrYoshiji