2017-01-19 4 views
0

cette situation qui trouve l'utilisateur sur un modèle jointure est semble difficile que d'habitudeRails utilisateur requête premier nom rejoindre le modèle

class ConversationParticipant < ActiveRecord::Base 
     belongs_to :user 
     belongs_to :conversation 
     attr_accessible :user_id 
    end 



    class User < ActiveRecord::Base 
     has_many :conversation_participants 

    end 

J'essaie de trouver le conversation_participant avec le fisrt_name avec cette requête

user = User.where('conversation_participant like ? or first_name like ?', query, query) 

mais la requête n'a pas retourné l'utilisateur_participant et l'utilisateur first_name non plus.

quelqu'un peut épargner un indice s'il vous plaît!

Répondre

1

Vous devez inclure le % pour l'opérateur sql LIKE

query = params[:query] # or something ... 
User.where('conversation_participant LIKE :query OR first_name LIKE :query', query: "%#{query}%") 
+0

ICEMAN, je vous remercie! – jjplack

+0

mais montre: User.where ('conversation_participant LIKE: requête OU premier_name LIKE: requête', requête: "% # {requête}%") User Load (14.0ms) SELECT "utilisateurs". * FROM "utilisateurs "WHERE (conversation_participant LIKE '%%' OU prénom 'LIKE' %% ') ActiveRecord :: StatementInvalid: SQLite3 :: SQLException: aucune colonne de ce type: conversation_participant: SELECT" utilisateurs ". * FROM" utilisateurs "WHERE (conversation_participant LIKE'% % 'OR first_name LIKE' %% ') donc je dois inclure%? – jjplack

+0

Eh bien, avez-vous une telle colonne 'conversation_participant' dans la table? – Iceman