如何在多行上分割I18n键

时间:2017-09-19 14:24:37

标签: ruby-on-rails ruby

我想做这样的事情

errors.add(:model, I18n.t("group1\
                         .group2\
                         .bla_bla_bla_bla"))

我想这样做的原因是rubocop给我的行长度太长,所以我想把它分成多行

3 个答案:

答案 0 :(得分:2)

尝试使用heredoc

t_key = <<-KEY
  group1\
  .group2\
  .bla_bla_bla_bla
KEY
errors.add(:model, I18n.t(t_key))

答案 1 :(得分:1)

我想说的很简单:

errors.add(:model, I18n.t("group1" \
                         ".group2" \
                         ".bla_bla_bla_bla"))

但是你也可以采用join方式:

errors.add(:model, I18n.t(["group1",
                           "group2",
                           "bla_bla_bla_bla"].join(".")))

这实际上取决于rubocop给你的具体错误。

答案 2 :(得分:0)

替代方案,您可以为I18n

使用scope的新语法

I18n.t(:blah_blah_blash, scope: [:group1, :group2])