Bonjour,
J’ai installé le plugin act_as_ferret et je souhaite installer un bouton
de recherche pour un modèle.
Pour ça, j’ai ajouté ceci dans mon controller:
def search
@results = Question.find_by_contents(@search ) unless
@search.to_s.blank ?
@search = params[:q]
end
My model question.rb is so:
class Question < ActiveRecord::Base
acts_as_ferret :fields => [ :description, :answer ]
end
J’ai créé une vue “search.html.erb” dans mon folder “views/questions,”
dans laquelle j’ai placé ceci:
<% if @results %>
<% for question in @results %>
<%= question.description %>
<% end %>
<% else %>
No result
<% end %>
Dans application.html.erb, j’ai ajouté le bouton de recherche pour que
la recherche soit disponible sur toutes les pages:
Le problème est qu’à l’envoi de la recherche, je reçois ce message:
ActiveRecord::RecordNotFound in QuestionsController#show
Couldn’t find Question with ID=search
Je ne maîtrise pas bien Ferret, est-ce que quelqu’un aurait une idée
pour m’aider?
Merci beaucoup!
2008/5/23 san 1981 [email protected] :
@search.to_s.blank ?
=> Met peut-être plutôt @search.empty ?
Pourquoi tu conserve @search ?
–
Cyril M.
Cyril M. wrote:
2008/5/23 san 1981 [email protected] :
@search.to_s.blank ?
=> Met peut-�tre plut�t @search.empty ?
Pourquoi tu conserve @search ?
–
Cyril M.
http://blog.shingara.fr
Merci pour ton aide Cyril,
J’ai essayé en remplaçant par .empty? mais le problème reste…
C’est la première fois que j’utilise ce plugin et pour m’aider j’ai
suivi le tutoriel proposé sur ce site
OVHcloud accompagne votre évolution grâce au meilleur des infrastructures web : hébergement, nom de domaine, serveur dédié, CDN, Cloud, Big Data, ...
Est-ce qu’il existe la possibilité d’utiliser ce plugin dans le cadre
d’une recherche dans plusieurs modèles?
2008/5/23 san 1981 [email protected] :
Merci pour ton aide Cyril,
J’ai essayé en remplaçant par .empty? mais le problème reste…
C’est la première fois que j’utilise ce plugin et pour m’aider j’ai
suivi le tutoriel proposé sur ce site
Félicitations ! Votre domaine a bien été créé chez OVHcloud !
sauf que tu as inversé ces deux lignes :
@search = params[:q]
@results = Post.find_by_contents(@search ) unless @search.to_s.blank ?
=> Dans ton cas :
@results = Question.find_by_contents(@search ) unless
@search.to_s.blank ?
@search = params[:q]
Est-ce qu’il existe la possibilité d’utiliser ce plugin dans le cadre
d’une recherche dans plusieurs modèles?
Jamais utilisé ferret, regarde la documentation et tu sauras
http://projects.jkraemer.net/acts_as_ferret/search?q=multiple+model&wiki=on&changeset=on&ticket=on
–
Cyril M.
Jordan B. wrote:
Hello,
Ton problème est simple: /questions/search… n’est pas “compris” par
Rails comme étant l’action search ( ActiveRecord::RecordNotFound in
QuestionsController#show<<<
Couldn’t find Question with ID=search ).
Tu utilises probablement une route map.ressources. Dans ce cas, ajoute
" , :collection => { :search => :get } " à la route, et ça devrait
marcher
Merci Jordan, je ne reçois plus de messages d’erreur!
Par contre il ne trouve aucun résultat? comment s’effectue la recherche?
Pour ce modèle j’ai simplement défini 2 champs que je fais afficher par
une simple boucle standard rails mais rien ne s’affiche?
Hello,
Ton problème est simple: /questions/search… n’est pas “compris” par
Rails comme étant l’action search ( ActiveRecord::RecordNotFound in
QuestionsController#show<<<
Couldn’t find Question with ID=search ).
Tu utilises probablement une route map.ressources. Dans ce cas, ajoute
" , :collection => { :search => :get } " à la route, et ça devrait
marcher
2008/5/23 san 1981 [email protected] :
san 1981 wrote:
Jordan B. wrote:
Hello,
Ton problème est simple: /questions/search… n’est pas “compris” par
Rails comme étant l’action search ( ActiveRecord::RecordNotFound in
QuestionsController#show<<<
Couldn’t find Question with ID=search ).
Tu utilises probablement une route map.ressources. Dans ce cas, ajoute
" , :collection => { :search => :get } " à la route, et ça devrait
marcher
Merci Jordan, je ne reçois plus de messages d’erreur!
Par contre il ne trouve aucun résultat? comment s’effectue la recherche?
Pour ce modèle j’ai simplement défini 2 champs que je fais afficher par
une simple boucle standard rails mais rien ne s’affiche?
Ca fonctionne, merci à tous!
Je regarde le wiki pour une recherche multi models