Ruby on rails 如何索引太阳黑子中一个项目的翻译
我正在使用Sunspot/Solr为我的Rails网站编制索引。我通过执行以下操作为城市名称编制索引:Ruby on rails 如何索引太阳黑子中一个项目的翻译,ruby-on-rails,internationalization,solr,sunspot,Ruby On Rails,Internationalization,Solr,Sunspot,我正在使用Sunspot/Solr为我的Rails网站编制索引。我通过执行以下操作为城市名称编制索引: class City < ActiveRecord::Base searchable do text :name ... end ... 因此,基本上每个区域设置都有一个索引列,如title_en和title_fr。我想知道是否有更好的方法?(列太多对我来说很糟糕) 我正在考虑的另一种选择是将一个项目的翻译连接为单个字符串,并将其放在另一个文本索引列中 我还
class City < ActiveRecord::Base
searchable do
text :name
...
end
...
因此,基本上每个区域设置都有一个索引列,如title_en和title_fr。我想知道是否有更好的方法?(列太多对我来说很糟糕)
我正在考虑的另一种选择是将一个项目的翻译连接为单个字符串,并将其放在另一个文本索引列中
我还在想,文本是否有类似于integer:ids,:multiple=>true的东西
那么,有什么更好的方法来索引相同项目名称的多个翻译版本呢?我实现了单列语言索引:
LANGUAGES = {
'en' => 'English',
'fr' => 'Français'
}
#inside city model
text :name_alt do
LANGUAGES.keys.reject{|l| l=='en'}.map do |locale|
read_attribute(:name, locale:locale)
end
end
这使用Rails I18n模块和Globalize3“read_属性”是Globalize3的一部分
这避免了按语言创建列
我不确定这是更好的方法还是多栏方法
LANGUAGES = {
'en' => 'English',
'fr' => 'Français'
}
#inside city model
text :name_alt do
LANGUAGES.keys.reject{|l| l=='en'}.map do |locale|
read_attribute(:name, locale:locale)
end
end