我有一个具有多态关联的ActiveRecord模型,如下所示:
class Reach < ActiveRecord::Base
belongs_to :reachable, :polymorphic => true
end
Run Code Online (Sandbox Code Playgroud)
这个模型就像一个代理.我需要做的是将该对象上的所有方法调用转发给关联的对象:reachable.我想delegate在这里没有用,因为我必须明确命名我需要委派的所有方法.我需要delegate :all委托所有方法(不是all方法).
我在我的Rails应用程序中使用elasticsearch-rails gem来简化与Elasticsearch的集成.我正在尝试使用语音分析插件,因此我需要为我的索引定义自定义分析器和自定义过滤器.
我尝试了这段代码,以便使用soundex语音过滤器执行自定义分析,但它失败并显示异常消息:
[!!!]错误创建索引时:Elasticsearch ::运输::运输::错误::错误请求[400] { "错误":"MapperParsingException [映射[call_sentence]];嵌套:MapperParsingException [分析器[{标记者=标准,过滤= [标准,小写,变音符]}]找不到字段[phonetic]];","状态":400}
# Set up index configuration and mapping
#
settings index: { number_of_shards: 1, number_of_replicas: 0 } do
mapping do
indexes :text, type: 'multi_field' do
indexes :processed, analyzer: 'snowball'
indexes :phone, {analyzer: {
tokenizer: "standard",
filter: ["standard", "lowercase", "metaphoner"]
}, filter: {
metaphoner: {
type: "phonetic",
encoder: "soundex",
replace: false
}
}}
indexes :raw, analyzer: 'keyword'
end
end
end
Run Code Online (Sandbox Code Playgroud)