我正在创建一个包含许多不同类型对象的应用程序,我想让用户上传到其中任何一个。有很多在线指南可以在1个特定模型中创建导入功能,但我不想在每个模型中复制代码。有更简洁的方式吗?
例如,Product.create! row.to_hash,我怎样才能使用变量而不是硬编码'产品'?
答案 0 :(得分:1)
constantize
会将类名转换为实际的类对象。
# params = { table: 'products' }
klass = params[:table].classify.constantize # => Product
klass.create! row.to_hash # or whatever