Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to determine table name within a Rails 3 model class

Tags:

I want to get table name in a model method. I found there should be method table_name but when I try to call it I get NameError Exception: undefined local variable or method `table_name'. It is obviously not there:

 pp methods.grep(/^ta.*/) ["table_name_prefix?",  "table_name_suffix?",  "taint",  "taguri",  "taguri=",  "tainted?",  "table_name_prefix",  "table_name_suffix",  "tap"] 

How to get a "real" table name (no lowecase - pluralize tricks)?

Thanks

like image 712
lzap Avatar asked May 26 '11 13:05

lzap


2 Answers

But I need that information in the model's instance method. How to get it?

You can simply do this in your instance method:

class Model   def instance_method     puts Model.table_name   end end 
like image 53
Mischa Avatar answered Sep 28 '22 06:09

Mischa


Found it.

It's a class method. Its not so obvious from the Rails 3 documentation.

self.class.table_name 
like image 25
lzap Avatar answered Sep 28 '22 06:09

lzap