我想制作一个activerecord记录的副本,更改进程中的单个字段(除了id).实现这一目标的最简单方法是什么?
我意识到我可以创建一个新记录,然后遍历每个字段逐个复制数据 - 但我认为必须有一个更简单的方法来做到这一点......
如:
@newrecord=Record.copy(:id) *perhaps?*
Run Code Online (Sandbox Code Playgroud) 我需要复制一条记录,除了cource的ID之外,还有原始的相同属性.我做:
在视图中:
<%= link_to "Duplicate", :action => "clone", :id => Some_Existing_ID %>
Run Code Online (Sandbox Code Playgroud)
在控制器中:
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
Run Code Online (Sandbox Code Playgroud)
但没有任何反应!在控制台中我发现克隆生成没有ID的副本.
有任何想法吗 ?
*> BTW:我正在运行Rails 2.3.5和Ruby 1.8