1

我有一个简单的问题 - 我需要将布尔 (contract_pledge) 转换为俄语 (Да/Нет) 的是/否格式。我想我可以很容易地找到答案,因为如果你想在显示页面中显示复选框似乎很自然。我找到了这两个帖子:

我试图将它们结合起来,但我失败了。现在我只有英语是/否。这就是我的观点/views/lots/show.html.erb

<%= form_for([@lot.tender,@lot]) do |f| %>
<table>
...
<tr>
<td class="right"><b><%= f.label :contract_pledge %></b></td>
<td><%=t @lot.contract_pledge.yesno %></td>
</tr>
...
</table>
<% end %>

那是我创建的文件 /config/initializers/boolean_path.rb :

class FalseClass
  def yesno
    "No"
  end
end

class TrueClass
  def yesno
    "Yes"
   end
end

那是我的 /config/locales/ru.yml

ru:
    yesno:
      Yes: "Да"
      No: "Нет"

当然,我可以解决在 Lot 视图中插入俄语的问题,但我想以 rails 方式进行。我将不胜感激,我认为这个问题对其他 Rails 年轻程序员很有用。

4

1 回答 1

1

您返回“是”或“否”,因此您必须翻译这些键:

<td><%= t @lot.contract_pledge.yesno %></td>

您还可以从第 2.3 节到第 2.6 节找到有用的http://guides.rubyonrails.org/i18n.html#setting-and-passing-the-locale

于 2013-05-11T17:20:55.063 回答