Rails 的相关感想
Rails 2.3.4 与 I18n
据Lighthouse 的 2.3.4 milestone ,Rails 2.3.4 预定于这个月末(2009年8月31日)发布。
我感到高兴的是, Rails 2.3.4 中新增了 Ticket #745 的对应。虽说暂时还是open的状态,但从补丁已经完成的情况看,确实如此。
这个增加填补了Rails 2.2.2 中引入的国际化(I18n)模块的少许不足之处。
config/locals/ja.yml 中本来是这样写的。
ja:
activerecord:
attributes:
user:
name: 姓名
phone: 电话号码
这样的话就希望将表格在 ERB 模板里照这样的形式写吧。
<% form_for @user do |f| %> <%= f.label :name %>: <%= f.text_field :name %><br /> <%= f.label :phone %>: <%= f.text_field :phone %><br /> <%= f.submit %> <% end %>
但是,在此之前 label 方法并没有对应 I18n,所以 f.label :name 只返回到“Name”字符串。
返回到“姓名”本来就是自然而然的事情。
Rails 2.3.3 之前,label 方法只是用humanize 方法更换栏名。因为与国际化没有关联。
所以必须像下面这样写。
<% I18n.with_options :scope => [:activerecord, :attributes, :user] do |locale| %> <% form_for @user do |f| %> <%= f.label :name, local.t(:name) %>: <%= f.text_field :name %><br /> <%= f.label :phone, local.t(:phone) %>: <%= f.text_field :phone %><br /> <%= f.submit %> <% end %> <% end %>
Rails 2.3.4 的问世,大大减少了书写量啊。
要是 submit 方法能在翻译文件里指定生成按钮的话更好了,当然,这是一个贪心的想法。
P.S. 遗憾的是 Rails 2.3.4 并没有增加这个。大概会等到 2.3.5 吧。
(2009/08/15)
- 前言
- Rails是否能成为企业领域的主流 (2008/03/29)
- Rails 2.0 测速 (2008/03/30)
- 测试驱动开发和调试代码 (2008/04/07)
- Git or Mercurial (2008/04/22)
- RESTful Ruby on Rails -- 美丽与复杂 (2008/04/23)
- RESTful Ruby on Rails -- 单数与复数 (2008/04/24)
- 读 Rails 的源码 (2008/05/02)
- sudo: no passwd entry for app! (Capistrano 2.3.0) (2008/05/12)
- Rails on GlassFish (2008/06/18)
- 怎样回答“Ruby 没有类型声明,在规范的系统里能使用吗?”这样的问题 (2008/11/23)
- 怎样回答“Ruby是脚本语言,不是有点慢吗”这样的问题 (2008/11/24)
- 哪种编程语言将来有前途 (2009/01/10)
- 哪种框架将来有前途 (2009/01/11)
- 框架 VS CMS (2009/01/12)
- Rails 2.3 spawner/reaper 变为 DEPRECATED (2009/03/25)
- db/seeds.rb (2009/06/08)
- LESS与Sass (2009/08/03)
- Rails 2.3.4 与 I18n (2009/08/15)

