Nouveau sur rails ... si dépouillé avec moi.Rails: petit problème searchlogic
J'ai réussi à installer et configurer searchlogic pour la recherche de base (mot-clé). J'ai le problème suivant:
@search = Proposal.search(params[:search])
@proposals = @search.all
Le code ci-dessus fonctionne correctement si je tape un mot clé comme « rouge ». Il fera apparaître tout avec le mot-clé rouge. Ou si je tape "vert", tout apparaîtra avec le mot clé vert. Cependant, quand je tape "rouge vert" dans la boîte de recherche, cela ne fera apparaître les cas où les mots-clés sont à la fois rouge et vert (et ne pas afficher les cas où ils peuvent avoir seulement l'un des deux mots-clés). Oui, j'utilise des keywords_like_any. Je peux voir quel est le problème général via le débogage, keywords_like_any: vert rouge. Le code ci-dessous fonctionne comme je le veux (faire apparaître toutes les instances de rouge OU vert).
@search2 = Proposal.keywords_like_any("red", "green")
@test = @search2.all
Je crois ce que je dois faire pour résoudre le problème est tourner le premier code pour afficher params [: recherche] comme un tableau? J'ai essayé de faire des paramètres [: string] .to_s.split (comme indiqué dans railscast) mais cela n'a pas fonctionné.
Si quelqu'un peut me diriger dans la bonne direction, j'apprécierais cela.
quelle classe est params [: recherche]? – perimosocordiae
Je ne suis pas certain de comprendre votre question. Bien que quand je debug params je reçois ceci: --- carte: HashWithIndifferentAccess commit: Soumettre authenticity_token: yfYORg04RDMlEgjr/4004PRTaJ2TJbV0z6Feq + OYXgw = l'action: index contrôleur: utilisateurs recherche: carte: HashWithIndifferentAccess keywords_like_any: asdf category_id_equals: "" En outre, le code mentionné dans la publication d'origine est dans mon contrôleur d'utilisateurs. Je pourrais coller mon code si cela pouvait aider, mais c'est plutôt standard. Merci – asdfasdfasdfasdf