如何在Rails3模型类中确定表名



我想在模型方法中获取表名。我发现应该有方法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

相关内容

  • 没有找到相关文章

最新更新