Bonjour,
Je travaille sur une appli dans laquelle j'ai un model Event et un modèle Person. Les personnes participent à un/des événements.
Dans ma vue de liste, j'ai une fonction de recherche et mon contrôleur fait ceci :
@event = Event.find(params[:event_id]
@people = @event.people.find(:all, :conditions => ["LOWER(nom) LIKE ? ","%#{@search_field}%"])
Jusque là ça marche nickel. Mais je coudrais rajouter la recherche parmi les tags des personnes.
Si je fais une recherche simple sur le model Person, c'est OK (mais j'ai toutes les personnes de la base), mais avec la relation sur Event (pour n'avoir que les personnes de tel événement), ça marche plus
OK : @people = Person.find_tagged_with(params[:s])
pas OK : @people = @event.people.find_tagged_with(params[:s])
Si besoin, je peux coller les requêtes SQL :
Mysql::Error: Champ 'people_tags.name' inconnu dans where clause: SELECT people.* FROM people INNER JOIN attendances ON people.id = attendances.person_id WHERE ((attendances.event_id = 2)) AND ((people_tags.name LIKE 'test'))
D'après ce que je peux en dire, c'est clairement un soucis de jointure dans le code, mais à part tout ré-écrite à la main (find_by_sql), j'arrive pas à corriger cette erreur
|
il y a 6 heures 15 min
il y a 1 jour 10 heures
il y a 2 jours 3 heures
il y a 2 jours 3 heures
il y a 6 jours 6 heures
il y a 6 jours 11 heures
il y a 6 jours 15 heures
il y a 1 semaine 3 heures
il y a 1 semaine 9 heures
il y a 1 semaine 3 jours