基于条件访问不同的模型属性

问题描述:

我很好奇,如果有一种很好的方式来访问模型的属性作为变量。基于条件访问不同的模型属性

if I18n.locale == :ja 
     pref = Prefecture.all.find { |pr| pr.name == province } 
    else 
     pref = Prefecture.all.find { |pr| pr.name_e == province } 
    end 

事情是这样的伪代码:

...find { |pr| pr.(I18n.locale == :ja ? name : name_e) == province } 

我试图存储块的一个进程,但我不使用有特效(如果这种做法会在这里工作)很多经验。感谢您的帮助!

+0

这是您正在访问的ActiveRecord模型吗? – plasticide

attr = 
case I18n.locale 
when :ja then :name 
else :name_e 

pref = Prefecture.find {|pr| pr.send(attr) == province} 
+0

啊,我忘了#send!感谢您的建议,我认为这基本上是我在寻找的。 –