我的表格包含兩列標題和說明。 我想爲用戶提供一個功能來爲現有頁面創建重複頁面。如何維護數據庫中的重複記錄?
就像現有的頁面數據庫存儲值一樣。
標題1,廣告描述
當重複頁面按鈕用戶點擊我要創建這樣的現有頁面重複條目。
1)點擊首次
Copy_1_Title1, 說明1
2)點擊第二次
Copy_2_Title1, 說明1
我如何創建這種類型的功能?我的數據庫應該如何呢?這是一種正確的方式嗎?
我的表格包含兩列標題和說明。 我想爲用戶提供一個功能來爲現有頁面創建重複頁面。如何維護數據庫中的重複記錄?
就像現有的頁面數據庫存儲值一樣。
標題1,廣告描述
當重複頁面按鈕用戶點擊我要創建這樣的現有頁面重複條目。
1)點擊首次
Copy_1_Title1, 說明1
2)點擊第二次
Copy_2_Title1, 說明1
我如何創建這種類型的功能?我的數據庫應該如何呢?這是一種正確的方式嗎?
我想你應該創建第三列,並將它命名,例如copy_number,然後創建一個記錄之前,你可以通過標題找到它,如果標題存在,您可以得到copy_number的值並加一。然後你可以使用這個數字來顯示你想要的標題:
「copy _#{record.copy_number} _#{record.title}」或類似的東西。
我會命名列版本,因爲這就是這裏真正發生的事情。但除此之外,你說得很對。有一個upvote – 2011-05-09 13:53:04
謝謝,很高興幫助 – bor1s 2011-05-09 14:08:28
@ bor1s提出了非常正確的解決方案。
但爲了利益,你可以使用這個mthod進行復制:)
class Page < AR::Base
def duplicate
# new_page = self.clone
new_page = Page.new self.attributes.except(:id, :created_at, :updated_at)
copy = (self.title.match(/Copy_(\d)+.*/).try([1]) || 0) + 1
new_page.title = "Copy_#{copy}_#{self.title}"
new_page.save
end
end
我有一個可能的答案,但我想知道爲什麼你會想這樣做第一。 – 2011-05-09 13:42:15