2012-04-20 2 views
1

Я использую meta_search gem в своих проектах и ​​имею таблицы пользователей и user_details.Как получить последнюю дочернюю группу записей по родительскому идентификатору с согласованными условиями

пользователей таблица должна иметь неизменную информацию, такие как имя, пол, группа крови, дата birth..etc

user_details есть адрес, номер мобильного телефон ... и т.д.

user.rb

has_many :user_details 

user_detail.rb

belongs_to :user 

Я подхожу каждый обновил нас er_details записывается как новая запись. я в настоящее время отображения последней записи user_details в качестве текущей записи пользователя

таблица user_details выглядит

id name  gender phone  user_id 
1. xxx  m  99389989  1 
2 xxx  f  3344444  1 
3 xxx  m  323434  1 
4 xxx yy  f  3324324  2 
5 xxx yyy f  332423  2 

Вопрос: Когда я ищу с ключевым словом, как извлечь последнюю user_details запись для каждого пользователь с согласованными условиями.

Пример: если поиск name_starts_with «ххх», то извлечение идентификатора 1 до 5. Но я хочу принести только ID 3 и 5

Заранее спасибо

ответ

0

Наконец я исправил используя метод MAX в MySQL

scope :last_record_in_each_group, lambda { |name| 
    cond = "user_details.id in (select max(user_details.id) from user_details group by user_details.user_id)" 
    cond << " and upper((CONCAT(first_name,' ', middle_name,' ', last_name))) like ?" 
    {:conditions => [cond, "%#{name.upcase}%"]} 
} 

ввиду

<%= search.text_field :last_record_in_each_group, :placeholder => "User Name" %> 

 Смежные вопросы

  • Нет связанных вопросов^_^