我想在模型方法中获取表名。我found应该有方法table_name但是当我尝试调用它时,我得到NameError异常:未定义的局部变量或方法`table_name'。显然不存在:
pp methods.grep(/^ta.*/)
["table_name_prefix?",
"table_name_suffix?",
"taint",
"taguri",
"taguri=",
"tainted?",
"table_name_prefix",
"table_name_suffix",
"tap"]
如何获得“真正的”表名(没有低级 - 复数技巧)?
由于
答案 0 :(得分:28)
但我需要那些信息 模型的实例方法。如何获得 它?
您可以在实例方法中执行此操作:
class Model
def instance_method
puts Model.table_name
end
end
答案 1 :(得分:19)
找到它。
这是一种课堂方法。从Rails 3文档中不那么明显。
self.class.table_name
答案 2 :(得分:0)
如果您在类的类方法中想要表名,请尝试:
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