我有一个带有雪貂的铁轨项目。我也有一些法国和西班牙名字的桌子。其中包含以下字符:á,à。 ü等 当我进行搜索时,我只使用普通字符,这使我无法在数据库中找到像“bèrché”这样的关键字,如“berche”。 我试图用像“?”这样的通配符替换人声。或“*”,但它似乎不起作用。
以下是代码:
# 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
任何想法如何进行?
答案 0 :(得分:0)
Ferret在构建索引时需要了解语言环境。它通过查看环境变量'LANG'来实现。我们有一个名为ferret的rake任务:重建,所以对我们来说它看起来像这样:
RAILS_ENV=development LANG=da_DK.UTF-8 INDEXES='Model' rake ferret:rebuild
如果这不起作用,请检查数据库整理。
供您参考
我们的佣金任务如下:
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