Ruby on rails 发现áà;,etc字符与铁轨中的雪貂
我有一个rails项目,ferret正在做这个项目。我还有一些有法语和西班牙语名字的桌子。包含像:á,á这样的字符。吕等。 当我进行搜索时,我只使用普通字符,这使得我不可能在数据库中找到像“bèrché”这样使用像“berche”这样的关键字的东西。 我试图用“?”或“*”之类的通配符替换人声,但似乎不起作用 代码如下:Ruby on rails 发现áà;,etc字符与铁轨中的雪貂,ruby-on-rails,wildcard,ferret,Ruby On Rails,Wildcard,Ferret,我有一个rails项目,ferret正在做这个项目。我还有一些有法语和西班牙语名字的桌子。包含像:á,á这样的字符。吕等。 当我进行搜索时,我只使用普通字符,这使得我不可能在数据库中找到像“bèrché”这样使用像“berche”这样的关键字的东西。 我试图用“?”或“*”之类的通配符替换人声,但似乎不起作用 代码如下: # controller default_options = {:limit => :all} @results_ferret = Model.find_with_fer
# 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
#控制器
默认_选项={:限制=>:全部}
@results\u-ferret=Model.find\u with\u-ferret(参数[“搜索词”],默认选项)
#模型
类模型[:region,:origin,:something,:name,:content],:remote=>true})
结束
有什么办法吗 在建立索引时,Ferret需要了解区域设置。它是通过查看环境变量“LANG”来实现的。我们有一个名为“雪貂:重建”的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
如果这不起作用,请检查数据库排序规则
供参考
我们的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
在构建索引时,Ferret需要了解区域设置。它是通过查看环境变量“LANG”来实现的。我们有一个名为“雪貂:重建”的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
如果这不起作用,请检查数据库排序规则
供参考
我们的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