我想在模型方法中获取表名。我发现应该有方法table_name,但当我尝试调用它时,我得到NameError Exception:未定义的局部变量或方法"table_name"。它显然不存在:
pp methods.grep(/^ta.*/)
["table_name_prefix?",
"table_name_suffix?",
"taint",
"taguri",
"taguri=",
"tainted?",
"table_name_prefix",
"table_name_suffix",
"tap"]
如何获得一个"真实"的表名(没有小写复数技巧)?
感谢
但我需要这些信息模型的实例方法。如何获得它
你可以在你的实例方法中简单地做到这一点:
class Model
def instance_method
puts Model.table_name
end
end
找到了。
这是一个类方法。从Rails3文档中看,这一点并不明显。
self.class.table_name
如果您在想要表名的类的类方法中,请尝试:
class Model < ActiveRecord::Base
def self.class_method
puts self.table_name
end
end
如果您尝试使用
self.class.table_name
您将遇到NoMethodError: undefined method 'table_name' for Class:Class