Изменение как запроса в ассоциации rails_admin

Я использую rails admin и имею две простые модели:

class Spot < ActiveRecord::Base
    has_many :user_spots
end

class UserSpot < ActiveRecord::Base
    belongs_to :spot
end

RailsAdmin.config do |config|
    config.model UserSpot do
        exclude_fields :id, :created_at, :updated_at
    end
end

когда я добавляю новый Spot в админке, он правильно показывает выпадающий список,

Мое поле

но когда я начинаю печатать, он выполняет следующий sql по умолчанию:

  Spot Load (0.6ms)  SELECT  `spots`.* FROM `spots` WHERE ((LOWER(spots.name) LIKE '%n%') OR (LOWER(spots.about) LIKE '%n%') OR (LOWER(spots.hours) LIKE '%n%') OR (LOWER(spots.location) LIKE '%n%') OR (LOWER(spots.call_info) LIKE '%n%') OR (LOWER(spots.website) LIKE '%n%') OR (LOWER(spots.menu) LIKE '%n%'))  ORDER BY spots.id desc LIMIT 30

Я хотел бы искать только по имени. Является ли это возможным?

1 ответ

Решение

Вы можете настроить так же, как:

RailsAdmin.config do |config|
  config.model UserSpot do
    exclude_fields :id, :created_at, :updated_at
    list do
      field :about do
        searchable false
      end

      field :hours do
        searchable false
      end

      # Like this mark false all the fields you don't want to 
      # search. By default all fields are searchable.
    end
  end
end

Проверьте эту вики для получения дополнительной информации.

Другие вопросы по тегам