嗨,我預先填充分貝這裏說 http://docs.rhomobile.com/faq#how-to-pre-populate-client-database ,但我有一個問題,當我做復位DB與默認代碼Rhomobile的預先填充DB和復位
def do_reset
Rhom::Rhom.database_full_reset
SyncEngine.dosync
@msg = "Database has been reset."
redirect :action => :index, :query => {:msg => @msg}
end
然後我失去的數據。當我重置時,如何使預填充的數據庫等會被加載。 乾杯
我想出了這樣的解決方案
鑑於do_reset.erb
<%
Antwort.delete_all()
file_name = File.join(Rho::RhoApplication::get_model_path('app','Settings'), 'antwort.txt')
file = File.new(file_name,"r")
aid=0
file.each_line("\n") do |row|
col = row.split("|")
aid=aid+1
@antwort=Antwort.create(
{"aid" => aid, "qid" => col[0],"antwort"=>col[1],"richtig"=>col[2]}
)
qty=file.lineno
break if file.lineno > 3000
end
Questions.delete_all()
file_name = File.join(Rho::RhoApplication::get_model_path('app','Settings'), 'questions.txt')
file = File.new(file_name)
file.each_line("\n") do |row|
col = row.split("|")
@question=Questions.create(
{"id" => col[0], "question" => col[1],"answered"=>'0',"show"=>'1',"tutorial"=>col[4]}
)
break if file.lineno > 1500
end
file.close
@msg="OK"
%>
但是,只有我現在的問題是在文本中的單引號又名「。然後它們會以應用程序的形式顯示在三角形中裏面像 一樣。該怎麼辦?
我認爲,在這種情況下,您將需要使用插入直接填充數據庫。您可以創建一組SQL語句並運行它們中的每一個。在數據庫重置時創建預填充的數據庫。 –
你的意思,而不是SyncEngine.dosync我應該寫一個代碼,將數據插入數據庫?任何想法什麼將是最好的方式? CSV? –
是的,這是關閉的。但是,傑弗裏在他的回答中如何記住,你可以使用管道分隔的文本,我認爲這是一個更好的主意。 –