Инициализировать объект модели из имени таблицы - PullRequest
0 голосов
/ 21 февраля 2012

Есть ли способ создания экземпляра объекта модели с пространством имен по имени таблицы?

Например: заданная таблица school_students, модель School::Student, идентификатор 30, я мог бы сделать:

student = get_from_table_name_and_id("school_students", 38)

1 Ответ

0 голосов
/ 21 февраля 2012

Эта реализация должна работать

def get_from_table_name_and_id(klass, id)
  klass.gsub('_','/').classify.constantize.find(id)
end

вывод:

irb(main):004:0> "school_students".gsub('_','/').classify                                                                                                                            
=> "School::Student"

Соглашение об именах в Rails - это пространство имен, представленное / в String

...