J'ai une situation, il y a plusieurs types de reçus dans mon projet. Je les stocke au integer
.Rails i18n use array
Dans le fichier i18n
, je déclare la traduction de cette manière.
hash[:"Receipt"] = {
:"receipt_choice1" => "Rc1",
:"choise_detail2" => "Rc_datail1",
:"receipt_choice2" => "Rc2",
:"choise_detail2" => "Rc_datail2",
:"receipt_choice2" => "Rc3",
:"choise_detail2" => "Rc_datail3",
}
Cependant, ce n'est pas pratique pour moi. En vue, j'ai besoin d'écrire la syntaxe if, else
pour choisir quel terme j'ai besoin. Comme ça.
<% if receipt.type == 1 %>
<p> <%= t(:"receipt.Receipt.receipt_choice1") </p>
<p> <%= t(:"receipt.Receipt.choise_detail2") </p>
<% elsif receipt.type == 2 %>
<p> <%= t(:"receipt.Receipt.receipt_choice1") </p>
<p> <%= t(:"receipt.Receipt.choise_detail2") </p>
...
Y a-t-il un moyen que je peux utiliser array pour déclarer? Comme
<%= t(:"receipt.Receipt[receipt.type]") %>
Ou est-il une meilleure façon que je peux utiliser?
Merci, je vais modifier le code comme votre réponse! –