Подтвердить что ты не робот

Как определить имя таблицы в классе модели Rails 3

Я хочу получить имя таблицы в методе модели. я найдено должен быть метод table_name, но когда я пытаюсь его вызвать, я получаю исключение NameError: undefined локальная переменная или метод` table_name '. Очевидно, это не так:

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

Как получить "реальное" имя таблицы (без меток lowecase - pluralize)?

Спасибо

4b9b3361

Ответ 1

Но мне нужна эта информация в метод экземпляра модели. Как получить это?

Вы можете просто сделать это в своем методе экземпляра:

class Model
  def instance_method
    puts Model.table_name
  end
end

Ответ 2

Нашел.

Это метод класса. Это не так очевидно из документации Rails 3.

self.class.table_name

Ответ 3

Если вы используете метод класса для класса, для которого требуется имя таблицы, попробуйте:

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