2010-12-02 8 views
2

Ich habe ein Rails-Projekt mit Frettchen darauf arbeiten. Ich habe auch einige Tische mit französischen und spanischen Namen drin. Das enthält Zeichen wie: á, à. ü, etc. Bei der Suche verwende ich nur gemeinsame Zeichen und das macht es unmöglich, in der Datenbank etwas wie "bèrché" mit einem Stichwort wie "berche" zu finden. Ich habe versucht, den Gesang durch einen Platzhalter wie "?" oder "*", aber es scheint nicht zu funktionieren. HierFinden von Buchstaben mit Frettchen in Schienen

ist der Code:

# controller 
default_options = {:limit => :all} 
@results_ferret = Model.find_with_ferret(params["search_words"], default_options) 

# model 
class Model < ActiveRecord::Base 
    require 'acts_as_ferret' 
    acts_as_ferret({:fields => [:region, :origin, :something, :name, :content], :remote => true}) 
end 

Irgendwelche Ideen, wie Sie vorgehen?

Antwort

0

Ferret muss beim Erstellen des Indexes über das Gebietsschema informiert werden. Dies geschieht, indem die Umgebungsvariable 'LANG' betrachtet wird. Wir haben eine Harke Aufgabe genannt Frettchen: Wiederaufbau so für uns sieht es wie folgt aus:

RAILS_ENV=development LANG=da_DK.UTF-8 INDEXES='Model' rake ferret:rebuild 

Wenn dies nicht funktioniert, überprüfen Sie Ihre Datenbankkollatierung.

Für Ihre Referenz

Unsere Rake Aufgabe sieht wie folgt aus:

namespace :ferret do 

    # Rebuild index task. Declare the indexes to be rebuilt with the INDEXES 
    # environment variable: 
    # 
    # INDEXES="my_model shared" rake ferret:rebuild 
    desc "Rebuild a Ferret index. Specify what model to rebuild with the INDEXES environment variable." 
    task :rebuild => :environment do 

    models = ENV['INDEXES'].split.map(&:constantize) 

    start = 1.minute.ago 
    models.each { |m| m.rebuild_index } 

    # update records that have changed since the rebuild started 
    models.each do |m| 
     m.records_modified_since(start).each do |object| 
     object.ferret_update 
     end 
    end 
    end 
end 
Verwandte Themen