我對此很陌生,我使用datamapper和sinatra構建基本應用程序。我有一個設置頁面,有幾個文本輸入用於幾種不同的設置。如何讓這段代碼更好? (sinatra + datamapper)
查看此頁面時,應該從數據庫中提取信息並填充輸入框(如果它們在那裏)。
對於我的設置Ⅰ類有:名稱和:值
截至目前,我的代碼工作,允許如果名稱犯規已經存在要創建的設置,否則它更新它。
Setting.first_or_create(:name => "seed").update(:name => "seed", :value => params[:seed])
3個問題:
如果輸入爲空,它會覆蓋它與 「」(第一次明顯後)
我怎樣才能縮短這個代碼下來?在一個'真正的'ruby程序中,我應該定義一個方法,使其沒有那麼多冗餘代碼?我有5個設置,所以我覺得有5行代碼,只有幾個不同的東西是差的。困難在於,我將被迫命名=「」我的所有輸入都是我正在使用的確切散列。林不知道如果多數民衆贊成差實踐與否,或者我是否應該只是做這一切明確的5倍
爲了「得到」的數據,以顯示它,我有這樣的:
@seed = Setting.get(:name => "seed")
這顯然不工作......我需要的是獲得params [:value] WHERE:name =>「seed」並使用<%= @seed(???)%>將其打印出來。林不知道如何做到這一點
這可能是明智的驗證'則params的值:種子]'存儲它放回你的數據庫之前。 – sarnold
是一次保存的所有設置(使用相同的方法)? – tokland
我得到了他們所有保存謝謝Taryn,現在我試圖打電話給他們在ERB文件,我不能:/他們都顯示爲零,即使他們保存在DB – Tallboy