【发布时间】:2011-01-05 10:18:03
【问题描述】:
我需要复制一条记录,除了源 ID 之外,它具有与原始相同的属性。我愿意:
在视图中:
<%= link_to "Duplicate", :action => "clone", :id => Some_Existing_ID %>
在控制器中:
def clone
@item = Item.find(params[:id]).clone
if @item.save
flash[:notice] = 'Item was successfully cloned.'
else
flash[:notice] = 'ERROR: Item can\'t be cloned.'
end
redirect_to(items_path)
end
但是什么也没发生!在控制台中,我发现克隆会生成没有 ID 的副本。
有什么想法吗?
*> 顺便说一句:我正在运行 Rails 2.3.5 和 Ruby 1.8
【问题讨论】:
-
我尝试做同样的事情,它对我有用。克隆应该生成没有 ID 的副本,因为 ID 设置为在保存时记录。我会添加一些
logger.debug并在日志中检查克隆操作中发生的情况。也许路线有问题? -
警告 在 Rails 3 中,不要调用
clone,而是调用dup。 stackoverflow.com/questions/60033/…
标签: ruby-on-rails