Вопрос

Мой обычный поиск на странице списка ActiveScaffold не работает.

У меня есть таблица Listlocations, которая имеет поля ID | list_id |. wiki_location_id. У меня следующие модели отношений

       class List < ActiveRecord::Base
         validates_presence_of :name
         has_many :list_locations, :dependent => :destroy
       end


       class WikiLocation < ActiveRecord::Base
         has_many :list_locations, :dependent => :destroy
       end

       class ListLocation < ActiveRecord::Base
         belongs_to :list
         belongs_to :wiki_location

         def wiki_location_title
           WikiLocation.find(wiki_location_id).title if wiki_location_id
         end

         def wiki_location_title= (title)
           wiki_location = WikiLocation.find_by_title(title)
           self.wiki_location_id = wiki_location.id if wiki_location
         end
       end
.

Мой контроллер для них

      class Admin::ListsController < Admin::AdminController
        active_scaffold :list do |conf|
          conf.columns = [:name, :list_order, :enabled]
          conf.columns[:enabled].form_ui = :checkbox 
          conf.columns[:enabled].inplace_edit = true
          list.sorting = {:list_order => 'asc'}
        end
      end


      class Admin::WikiLocationsController < Admin::AdminController
        active_scaffold :wiki_location do |conf|
          conf.columns = [:title, :street]
          list.per_page = 10
        end
      end 


     class Admin::ListLocationsController < Admin::AdminController  
       active_scaffold :list_location do |conf|
         conf.columns = [:list, :wiki_location]
         conf.columns[:list].form_ui = :select
         conf.search.columns << :list
       end
     end
.

Я также реализовал поиск по именному (SAYT) функцию для поле Wiki_Location в таблице List_Locations

Мои взгляды выглядят как

Введите описание изображения здесь

Введите описание изображения здесь

Я внедрил автоматическую функцию, следуя инструкциям в указанном ниже ссылке ActiveScaffold AutoComplete

Теперь моя проблема заключается в том, когда я использую обычный поиск в моем списке страницу активных лесов, я не получаю никаких результатов

Запрос, который я получил от моей консоли, это

 SELECT `list_locations`.`id` AS t0_r0, `list_locations`.`list_id` AS t0_r1, 
 `list_locations`.`wiki_location_id` AS t0_r2, `list_locations`.`created_at` AS t0_r3,
 `list_locations`.`updated_at` AS t0_r4, `lists`.`id` AS t1_r0, `lists`.`name` AS t1_r1,
 `lists`.`list_order` AS t1_r2, `lists`.`enabled` AS t1_r3, `lists`.`created_at` AS 
  t1_r4, `lists`.`updated_at` AS t1_r5 FROM `list_locations` LEFT OUTER JOIN `lists` ON 
 `lists`.`id` = `list_locations`.`list_id` WHERE ((((`lists`.`id` LIKE '%museum%'))))
  ORDER BY `list_locations`.`id` ASC LIMIT 15 OFFSET 0
.

Это похоже на его поиск по LISTS.ID поле вместо списка .Name

Почему это так. Как я могу сделать его список поиска. Мне также нужно искать колонку Wiki_Locations.title тоже. Как это может быть сделано. Пожалуйста, помогите.

Это было полезно?

Решение

Try to set:

conf.columns[:list].search_sql = 'list.name'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top