在Ruby on Rails中翻译枚举值

时间:2015-05-02 07:43:04

标签: ruby-on-rails enums internationalization

我需要翻译枚举值:

$("#report > tbody > tr:odd").addClass("odd");
$("#report > tbody > tr:not(.odd)").hide();
//$("#report tr").find("table").closest("tr").show();

$("#report").on('click', 'tr.odd', function () {
    $(this).next("tr").toggle();
    $(this).find(".arrow").toggleClass("up");
});

它在简单的表单选择输入中很好地翻译,但在常规HTML布局中没有:

#ad.rb
class Ad < ActiveRecord::Base
  extend Enumerize
  enumerize :price_currency, in: {:UAH => 0, :USD => 1}
end

#en.yml
ads:
    price_currency:
      UAH: "UAH"
      USD: "USD"
enumerize:
  ad:
    price_currency:
      UAH: "UAH"
      USD: "USD"

当我尝试按以下方式翻译时:

%p= ad.price + ' ' + ad.price_currency.to_s if not ad.price.blank?

我收到以下错误:

  

没有将Hash隐式转换为String

如何解决?

1 个答案:

答案 0 :(得分:0)

好吧,问题不在于enumerize,而是在price_currency不存在的情况下尝试翻译空值。 通过添加price和price_currency的验证来修复:

%p= ad.price + ' ' + ad.price_currency.text if ad.price and ad.price_currency