如何在Rails 3模型类中确定表名
我想在模型方法中获取表名。 我发现应该有方法table_name但是当我尝试调用它时,我得到NameErrorexception:未定义的局部变量或方法`table_name’。 显然不存在:
pp methods.grep(/^ta.*/) ["table_name_prefix?", "table_name_suffix?", "taint", "taguri", "taguri=", "tainted?", "table_name_prefix", "table_name_suffix", "tap"]
如何获得一个“真正的”表名(没有lowecase – 复数技巧)?
谢谢
但我需要在模型的实例方法中使用该信息。 怎么弄呢?
您可以在实例方法中执行此操作:
class Model def instance_method puts Model.table_name end end
找到了。
这是一种类方法。 从Rails 3文档中不那么明显。
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