2015-11-05 40 views
2

我正在創建一個具有許多不同類型的對象的應用程序,我想讓用戶可以上傳到其中的任何一個。有許多指南可以在一個特定模型中創建導入函數,但我不想在每個模型中複製代碼。有沒有更好的方法?Rails中的簡單CSV導入函數將'表'名稱作爲變量?

例如,Product.create! row.to_hash,我如何使用變量而不是硬編碼'Product'?

回答

1

constantize將把一個類名變成一個實際的類對象。

# params = { table: 'products' } 

klass = params[:table].classify.constantize # => Product 
klass.create! row.to_hash # or whatever