2011-12-29 4 views
0

permet donc dire que j'ai un tableau contenant un hachage comme ceci:créer un champ dans des rails 3 + mongo dans un modèle à partir d'un tableau/hachage

[{"head"=> {"title"=>"$20,000 Prize-Winning Chili", 
      "categories"=>[{"cat" => "Tex-mex"}] 

Il est beaucoup plus grand que cela (sa recette complète) - mais cela devrait suffire à démontrer ma question.

dans mon modèle Recipe.rb J'ai:

def title 
    self["head"]["title"] rescue nil 
    end 

qui me donnera recipe.title dans mes vues ... Cependant, dans mon contrôleur, je veux être capable de faire des choses comme:

@recipes = Recipe.where(title: "xyz") 

Mais le titre n'est pas un champ de la collection - donc ça ne me rapporte rien ... des idées ici? Je suis super nouveau pour mongo - comme je l'ai commencé hier.

Merci!

Répondre

1

Utilisez ceci:

@recipes = Recipe.where('head.title' => "xyz") 
+0

erreur de syntaxe, unexpected ':', expecting ')' @recipes = Recipe.where ('head.title': "xyz") – Elliot

+0

évolution à => travaillé – Elliot

+0

Ah oui. La nouvelle syntaxe est bonne pour les symboles seulement :-) Mise à jour de la réponse. –

Questions connexes