我的表包含两列Title和Description。 我想为用户提供一种功能,为现有页面创建重复页面。
与现有的页面数据库存储值类似。
Title1,Description1
当用户点击重复页面按钮时,我想为现有页面创建一个重复的条目,如下所示。
1)点击第一次
Copy_1_Title1, 内容描述
2)点击第二次
Copy_2_Title1, 内容描述
如何创建此类功能?我的数据库应该如何?这是一种正确的方法吗?
答案 0 :(得分:4)
我认为您应该创建第三列,并将其命名为 copy_number ,然后在创建记录之前,您可以通过标题找到它,如果标题存在,您可以获得价值 copy_number 并增加它。然后你可以使用这个数字来显示你想要的标题:
“copy _#{record.copy_number} _#{record.title}”或类似的内容。
答案 1 :(得分:1)
@ bor1s提出了非常正确的解决方案。
但是为了兴趣,你可以使用这个方法进行复制:)
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