Cómo implementar la búsqueda en los rieles de ACTIVESCAFFIGH 3
-
16-11-2019 - |
Pregunta
Mi búsqueda normal en la página de lista ACTIVESCAFFIFF NO está funcionando.
Tengo tabla de listones que tiene campos ID | list_id | wiki_location_id. Tengo las siguientes relaciones modelo
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
Mi controlador para estos son
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
También he implementado la búsqueda de la función (Sayt) para Wiki_Location Field en List_Locations Tabla
Mis vistas parecen
He implementado la función automática completa siguiendo las instrucciones en el siguiente enlace especificado ACTIVESCAFFFOLG AUTOCOMPLETLE
Ahora, mi problema es cuando utilizo la búsqueda normal en mi página de la lista del andamio activo, no recibo ningún resultado
La consulta que obtuve de mi consola es
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
Parece que está buscando en lists.ID campo en lugar de list.name
¿Por qué es así? ¿Cómo puedo hacerlo la lista de búsqueda.Nombre? También necesito buscar la columna Wiki_Locations.Title también. ¿Cómo se puede hacer esto? Por favor ayuda.
Solución
Try to set:
conf.columns[:list].search_sql = 'list.name'