tiene solares sobre que protuberancias producen planeta piel nuestro manchas las influencia hoy galilei como ruby-on-rails solr sunspot facet

ruby on rails - sobre - Rieles y manchas de manchas solares y filtrado



protuberancias solares (1)

Necesitaba la respuesta a esto yo mismo, y viendo que parece que no hay nada más en la web sobre eso, decidí tratar de resolverlo por mi cuenta.

Primero llegué a la conclusión a través de la lógica, que el controlador puede manejar múltiples facetas y no hay motivos por los que no puede hacerlo, recordé que la mejor parte del rubí es que es el código más legible, intente leer su primer controlador y usted Veo que tiene sentido que funcione. Probé esto al ingresar manualmente una cadena de consulta en url, que arrojó los resultados esperados. Por lo tanto, una vez que me di cuenta de eso, supe que el problema residía en mi punto de vista (lo que me hizo palidecer porque ahora es bastante obvio)

Su ejemplo es significativamente más complejo que el mío, y mi respuesta podría no cumplir al 100% con todos los requisitos, pero estoy bastante seguro de que está cerca. También su código en su modelo con respecto a "departamental", etc. es un poco redundante en mi opinión

Controlador

def index @search = Style.search do fulltext params[:search] facet :departmental, :seasonal, :classifier with(:departmental, params[:department]) if params[:department].present? with(:classifier, params[:classification]) if params[:classification].present? with(:seasonal, params[:season]) if params[:season].present? end

Ver

%h4 Departments %ul - for row in @search.facet(:departmental).rows %li - if params[:department].blank? = link_to row.value, styles_path( :department => row.value, :classification => (params[:classification] unless params[:season].blank?), :season => (params[:season] unless params[:season].blank?)) (#{row.count}) - else %strong= row.value = link_to "remove", styles_path( :department => nil, :classification => (params[:classification] unless params[:season].blank?), :season => (params[:season] unless params[:season].blank?))

Prácticamente un noobie aquí, así que agradezco cualquier ayuda que alguien pueda dar.

Estoy tratando de agregar facetas a la búsqueda en mi sitio a través de Sunspot. Ryan acaba de lanzar un gran Railscast que me ayudó a comenzar: http://railscasts.com/episodes/278-search-with-sunspot . Lo conseguí y pude agregar facetas adicionales. Mi problema es que las facetas son independientes entre sí. Si tengo 3 facetas en 3 atributos diferentes, cuando selecciono una faceta una vez que ya la he seleccionado, me gustaría mostrar solo los resultados que caen en ambas facetas. A partir de ahora, simplemente cambia de una faceta a la otra. Siento que esto no debería ser tan difícil, pero no puedo entender cómo hacerlo.

Encontré este tutorial: http://blog.upubly.com/2011/01/06/using-sunspot-in-your-views/, que creo que está haciendo lo que quiero. Intenté que esto funcionara, pero incluso cuando intento que funcione con una sola faceta, no aparece ningún resultado. Solo el nombre de la faceta y luego nada más.

¿Pensamientos?

¡¡Gracias!!

ACTUALIZAR

Aquí está el código de muestras de lo que estoy tratando de hacer:

Ajustando el código de Railscasts obtuve esto:

En mi StylesController:

def index @search = Style.search do fulltext params[:search] facet :departmental, :seasonal, :classifier with(:departmental, params[:department]) if params[:department].present? with(:classifier, params[:classification]) if params[:classification].present? with(:seasonal, params[:season]) if params[:season].present? end

En mi vista de índice de estilo (sé que necesito condensar esto)

= form_tag styles_path, :method => :get do %p = text_field_tag :search, params[:search] = submit_tag "Search", :name => nil #facets %h4 Departments %ul - for row in @search.facet(:departmental).rows %li - if params[:department].blank? = link_to row.value, :department => row.value (#{row.count}) - else %strong= row.value (#{link_to "remove", :department => nil}) %h4 Classifications %ul - for row in @search.facet(:classifier).rows %li - if params[:classification].blank? = link_to row.value, :classification => row.value (#{row.count}) - else %strong= row.value (#{link_to "remove", :classification => nil}) %h4 Seasons %ul - for row in @search.facet(:seasonal).rows %li - if params[:season].blank? = link_to row.value, :season => row.value (#{row.count}) - else %strong= row.value (#{link_to "remove", :season => nil})

En mi modelo de estilo:

searchable do text :number, :description, :department, :classification, :season string :departmental string :classifier string :seasonal end def departmental self.department end def classifier self.classification end def seasonal self.season end

Y mi versión del código upubly, emparejado para solo intentar que la faceta "estacional" funcione:

Dejé el Search Partial, el Search Model y el SearchHelper de la misma manera que en el ejemplo. Traté de meterme con el Ayudante ya que mis Facetas extraerán valores de texto, no solo ID de otros Modelos, pero fue en vano. No tengo mis diversos atributos configurados como Modelos individuales ya que no creía que necesitara esa funcionalidad, pero estoy empezando a pensar lo contrario.

StylesController:

def index @title = "All styles" @search = search = Search.new(params[:search]) # need to set local variable to pass into search method @search.url = styles_path @search.facets = [:seasonal] @solr_search = Style.search do keywords search.query with(:seasonal, true) search.facets.each do |item| facet(item) with(:seasonal, params[:season]) if params[:season].present? end any_of do # filter by facets search.facets.each do |item| with(item).all_of( params[item].try(:split, "-") ) if params[item].present? end end paginate(:page => params[:page], :per_page => 10) end

De nuevo, agradezco la ayuda. Definitivamente un novato, pero realmente disfruta el proceso de construcción de este sitio. Stackoverflow ya ha sido una gran ayuda para mí, por eso le debo a todos los que publican respuestas aquí un gran agradecimiento.