Как искать в базе данных по подобному запросу в ruby ​​on rails?

я использую rails и mongo db в качестве базы данных, просто я хочу искать, у меня есть роль имени поля. Теперь я отправляю элемент поиска в

params[:role]
params[:name]

Теперь у меня есть модель User, какой может быть мой запрос для поиска данных в модели User, такой как params[:name] Мне понравилось

 @role = params[:role]
    @name = params[:name] 
     @data = User.{where(:role => @role)}.where("description LIKE (?)",
    "%#   {@name}%").desc(:created_at).
    excludes(:id    => current_user.id)

Вышеупомянутый запрос - это просто анализ. Я имею в виду, что это должно понравиться в therotical, но я не получил id.


person regmiprem    schedule 09.10.2012    source источник
comment
Вы даже пытались искать это? stackoverflow.com/questions/10326662/search-through-sentences   -  person Vadim Chumel    schedule 09.10.2012
comment
Можете ли вы отредактировать мой вопрос. Я запутался. Это не работает.   -  person regmiprem    schedule 10.10.2012


Ответы (1)


Это работает? (из головы...)

 @role = params[:role]
 @name = params[:name] 
 @users = User.where(:role => @role)
 @data = @users.where(users[:description].matches("%#{@name}%")).order("created_at desc").excludes(:id=> current_user.id)
person Hugo Logmans    schedule 09.10.2012
comment
при чем тут пользователи? Я не понимаю. и (: описание) - это имя поля коллекции пользователей? - person regmiprem; 10.10.2012
comment
users[:description].matches("%#{@name}%") — это AREL-версия "description LIKE (?)". Я взял эти имена из ваших команд, вы должны знать, что они на самом деле означают :) - person Hugo Logmans; 11.10.2012
comment
Если я хочу сопоставить с другим полем, таким как поле: электронная почта: адрес с @ именем, то что мне делать? - person regmiprem; 11.10.2012