基于条件访问不同的模型属性
问题描述:
我很好奇,如果有一种很好的方式来访问模型的属性作为变量。基于条件访问不同的模型属性
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 }
我试图存储块的一个进程,但我不使用有特效(如果这种做法会在这里工作)很多经验。感谢您的帮助!
答
attr =
case I18n.locale
when :ja then :name
else :name_e
pref = Prefecture.find {|pr| pr.send(attr) == province}
+0
啊,我忘了#send!感谢您的建议,我认为这基本上是我在寻找的。 –
这是您正在访问的ActiveRecord模型吗? – plasticide