我正在研究驗證Excel文件並將其保存到數據庫的引擎。但我的引擎沒有提供任何遷移。表格保存數據將由應用程序提供。如何在我的導引引擎中訪問模型的表名
現在我的問題是,如何在需要保存數據的引擎模型中訪問表名稱?
例如,我有一個模型upload.rb
和應用程序提供了表admins
我想保存數據。
我檢查了this question並設置了self.table_name = 'admins'
,但每次都無法設置表名。
我對軌道非常陌生,我第一次構建引擎。
這是發展過程中對我的引擎模型
module MyEngine
class Upload < ActiveRecord::Base
self.table_name = 'admins'
def validate(file)
spreadsheet = open_excel(file)
header = spreadsheet.row(1)
2.upto(spreadsheet.last_row) do
row = Hash[[header, spreadsheet.row(i)].transpose]
upload = Upload.new(row)
upload.save!
end
end
private
def open_excel(file)
case File.extname(file)
when ".xls", ".xlsx" then Roo::Spreadsheet.open file
else raise "File format not supported"
end
end
end
end
下面的代碼,我可以設置self.table_name = 'admins'
但在生產中它很難改變表的名字每次。 任何幫助將不勝感激。
你想直接訪問數據庫,是嗎?爲什麼你不只是實例化一個新的管理實例,然後保存它?表名不應該在這裏相關。 –
只有當我的型號名稱是'admin'時,它纔會起作用。但型號名稱可以是任何東西。無論如何,截至目前的要求是由客戶更改,所以它現在不需要bt謝謝答覆。 – Sinscary