在用rails做报表,从数据库中提出column_name时遇到了问题,数据库中字段名和报表显示的表头之间怎么做对应,还有页面上的英文怎么做本地化对应。
下面是使用localization插件的方法:
首先在rails应用下执行
ruby script\plugin install localization
查看下vendor\plugins下应该已经有了localization文件夹,里面有readme
在rails应用下新建lang文件夹,在lang下新建lang.rb,代码如下:
Localization.define('lang') do |l|
l.store 'name', '名称'
l.store 'price', '价格'
end
l.store 'price', '价格'
end
在applicationController.rb里添加代码:
Localization.lang = 'lang'
在视图里,可以写下面的代码:
<table>
<tr>
<% for column in Product.content_columns %>
<th><%= _(column.name.to_s)%></th>
<% end %>
</tr>
<% for product in @products %>
<tr>
<% for column in Product.content_columns %>
<td><%=h product.send(column.name) %></td>
<% end %>
<tr>
<% for column in Product.content_columns %>
<th><%= _(column.name.to_s)%></th>
<% end %>
</tr>
<% for product in @products %>
<tr>
<% for column in Product.content_columns %>
<td><%=h product.send(column.name) %></td>
<% end %>
针对这个例子中,products表里的字段是name, 和price.现在运行rails应用,表头就会显示对应的字段了。
--
对于修改过的lang.rb文件,必须要重启应用才能生效。
本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/88610,如需转载请自行联系原作者