锁定老帖子 主题:Active Record 错误信息本地化
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-14
不是我不调试
这个问题就出在Application.rb的第6行上.这个代码我在Rails英文网上查过,也在Railscn上找到过.但我试过了,放在Application.rb中时如果我们用Messager_for......时都不好用.如果我们用Messager_for显示出错信息,那么下发空表单时就出错. 流程是这样的. 1.把那些代码Copy到Application.rb中,目的覆盖Messager_for方法 2.有验证的表单中一般都会有Messager_for....吧.这时下发这个表单 3.报错了. 我用另一个方法绕过了Messager_for出错,可以显示出来表单验证出错信息. 流程是这样的. 1.把那些代码Copy到Application.rb中,目的覆盖Messager_for方法 2.有验证的表单中一般都会有Messager_for....吧(先把网页这个Messager_for去掉).这时下发这个表单 3.填写表单内容.同时把表单网页中的Messager_for.....再加回来.这样网页中又有Messager_for...了 4.提交表单 5.报错的信息正确的显示出来了. |
|
返回顶楼 | |
发表时间:2006-10-14
application.rb? helper为什么定义到controller里去?
|
|
返回顶楼 | |
发表时间:2006-10-14
虽然你写了这么多,我还是没到你描述了更多的信息。
1、你的第6行是代码中的哪一行?按你给的代码,应该是error_list = []这一行,如果真是这样,那么我看你的ruby解释器问题大了。。。 2、出错时的异常信息是什么?就是页面最上面那一点,你把它翻译成中文再告诉我没有错(你说的第6行),但不要把更重要的东西给漏掉了。 3、你生成scaffold测试看看,如果还有错,把测试信息最重要的部分发出来。 |
|
返回顶楼 | |
发表时间:2007-01-28
qiezi的这个补丁可不可以把 field 字段也给汉化了,虽然调用@base.class.human_attribute_name(attr)返回的是字段名的友好形式,但终归是英文的。
可不可以做到返回字段的备注信息? 或者可不可以通过扩展 Migration 给英文字段名添加其他备注信息(如对应的汉字名)?Django在设计 model 的时候就是这么做的。 希望 ruby高手们考虑一下如何实现。 |
|
返回顶楼 | |
发表时间:2007-01-28
在http://www.iteye.com/topic/20123?page=3找到了一个human_name_plugin。
require 'active_record/connection_adapters/abstract/schema_definitions' module Foo module AdjustHumanName module Work def self.append_features(base) super base.extend ClassMethods ActiveRecord::ConnectionAdapters::Column.class_eval do alias_method :orginal_human_name, :human_name def human_name return @human_name_value if @human_name_value return orginal_human_name end end end end module ClassMethods def human_name(kw) kw.each_pair do |key,value| col = self.columns_hash[key.to_s] col.instance_variable_set :@human_name_value,value.to_s end end end end end ActiveRecord::Base.class_eval do include Foo::AdjustHumanName::Work end |
|
返回顶楼 | |