如何在视图中的button_to方法中实例化实例变量?

时间:2015-02-20 19:32:47

标签: ruby-on-rails internationalization

我有很多我想要国际化的视图文件。其中一个文件碰巧有这样的代码行:

= button_to t('.spam'), label_as_spammer_account_path(@topic.account), method: :post,
  data: { confirm: t('.spam_confirmation'), user: @topic.posts.first.account.name }, class: 'btn btn-mini btn-warning'

我尝试I18n的部分特别是数据确认消息的一部分。如何将消息的@topic.posts.first.account.name部分国际化?到目前为止,我在我的topics.en.yml文件中有这个(当然是浓缩的)

topics:
  show:
    spam_confirmation: "Are you sure you want to mark %{user} as a spammer, disabling the account and removing all posts?"

无论我如何修改上述代码,%{user}部分都拒绝国际化。

我试过了:

data: { confirm: t('.spam_confirmation'), user: "@topic.posts.first.account.name" }
data: { confirm: t('.spam_confirmation'), user: #{@topic.posts.first.account.name} }
data: { confirm: t('.spam_confirmation'), user: "#{@topic.posts.first.account.name}" }

此时,我只是想做任何事情,看看是否有效。我必须具体,但因为rubocop / haml-lint抱怨我不能做得恰到好处。如果有人知道我可以尝试的其他任何事情,将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试将user:选项传递给t辅助方法:

data: { confirm: t('.spam_confirmation', user: @topic.posts.first.account.name) }