对不起我的英语不好...
我有一个开发到西类牙的 rails 应用程序,因此,所有内容都是西类牙语,所以,我有一个搜索框可以在 mysql 数据库中搜索,所有行都是西类牙语,我想改进我的搜索以允许用户以单数或复数形式搜索关键字,例如:
keyword: patatas
found: patata
keyword: veces
found: vez
keyword: vez
found: veces
keyword: actividades
found: actividad
在英语中,借助单数化和复数化方法,这可能相对容易...
where `searching_field` like '%singularized_keyword%' or `searching_field` like '%pluralized_keyword%'
但是,对于西类牙语......
一些帮助?
谢谢!
最佳答案
您现在可以定义自己的变化。
查看 config/initializers/inflections.rb
基于您的问题的示例
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'patata', 'patatas'
end
因此
"patata".pluralize # => "patatas"
"patatas".singularize #=> "patata"
当然你需要提前知道关键字列表才能使用config/inflections.rb中的不规则方法。查看该文件中注释掉的示例。还有其他方法允许使用正则表达式定义规则,您可以设计模式匹配来影响匹配已知模式的任意关键字的变化。
关于ruby-on-rails - 西类牙语的复数化和单数化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4607800/