Вызов нового по имени строки в БД - PullRequest
0 голосов
/ 29 августа 2010

Хорошо, у меня есть строка «Продукт».

table_name = "Product"

Я не могу сделать

table_name.new

undefined method `new

Так что я пытался найти работу вокруг этого

table_name = table_name.downcase.pluralize
name = ActiveRecord::Base.connection.tables.select { |t| t == table_name }.first
name.new

Я не уверен, что это сработает, но даже если это похоже на взлом, есть идеи, как это исправить

Ответы [ 2 ]

3 голосов
/ 29 августа 2010

Если вы хотите избежать звонка eval, вы также можете набрать

"product".camelize.constantize.new

0 голосов
/ 29 августа 2010

попробуйте это:

(instance_eval table_name).new
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...