Some_Existing_ID %> 并在 Control-6ren">
gpt4 book ai didi

ruby-on-rails - 克隆(也称为重复)记录

转载 作者:行者123 更新时间:2023-12-03 12:19:02 25 4
gpt4 key购买 nike

我需要复制一条记录,其记录具有与原始记录相同的属性,但cource的ID除外。我做:

在 View 中:

<%= link_to "Duplicate", :action => "clone", :id => Some_Existing_ID %>

并在 Controller 中:
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

最佳答案

确保默认克隆行为适合您。根据您的验证规则,克隆的记录可能实际上是无效的。

尝试使用@item.save!而不是@item.save,并检查是否引发异常。
您也可以直接在控制台实例中尝试代码。

In Console I figured out that clone generates the copy without ID.

这是真的。 #clone实际上创建一个克隆,但不保存记录。
这就是为什么您需要在操作中调用save方法的原因,而这正是您实际使用的方法
if @item.save # <-- here you save the record
flash[:notice] = 'Item was successfully cloned.'
else
flash[:notice] = 'ERROR: Item can\'t be cloned.'
end

关于ruby-on-rails - 克隆(也称为重复)记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2070250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com