Ответ 1
Но мне нужна эта информация в метод экземпляра модели. Как получить это?
Вы можете просто сделать это в своем методе экземпляра:
class Model
def instance_method
puts Model.table_name
end
end
Я хочу получить имя таблицы в методе модели. я найдено должен быть метод 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)?
Спасибо
Но мне нужна эта информация в метод экземпляра модели. Как получить это?
Вы можете просто сделать это в своем методе экземпляра:
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