作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
'véhicule'}> ...] 我如何进行选择,使得 Resource.f-6ren">
在 ruby 控制台上,当我执行 Resource.all
时,它会给我以下信息:
[<Resource id:'...', name_translated:{"en"=>'vehicle',"fr"=>'véhicule'}> ...]
我如何进行选择,使得 Resource.find_by_name_translated("vehicle")
最佳答案
这可行,但我认为这不是最有效的方法:
#app/models/resource.rb
def self.find_by_english_name(name)
Resource.all.select do |resource|
resource.name_translated['en'] == name
end
end
如果你想用一种方法找到多种语言(默认为英语),试试这个:
def self.find_by_name(name, language = 'en')
Resource.all.select do |resource|
resource.name_translated[language] == name
end
end
因为你使用的是 Postgres,这也可以写成如下:
def self.find_by_name(name, language = 'en')
Resource.where("name_translated ->> '#{language}' = '#{name}'")
end
关于ruby - 根据译名选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33215040/
我是一名优秀的程序员,十分优秀!