Я пишу функцию rails, которая может добавить объект Car или Building к объекту City.
Первая часть функции - создать объект Car или Building с заданным именем, затемдобавьте его в список автомобилей или зданий города.
def addObject(obj_type,obj_name,city_id)
new_obj = obj_type.constantize.create(:name => obj_name)
city = City.find(city_id)
city.obj_type.underscore.pluralize << new_obj
end
С Inflector
программа может использовать constantize
для ссылки на нужный класс модели.
(спасибо Ссылка на модель со строковым вводом )
Например:
new_obj = obj_type.constantize.create(:name => obj_name)
Однако при попытке доступа к спискам внутри объекта City
,
obj_type.underscore.pluralize
может превратить "Car" в "cars"
, однако, он будет работать только как пустая строка, так как не будет работать следующее:
city.obj_type.underscore.pluralize #city.cars desired
будет выполнять некоторые функции метапрограммирования, такие какeval()
потребуется?
Заранее спасибо,