Rails复制第一个记录



我有一个简单的index.html.erb,它逐行显示当前订单。它有路径Show,删除

我只想复制一条记录。当我单击duplicate时,无论我单击的是哪一行,它都会复制数据库中的第一个记录。

我尝试了网站上几乎所有的建议。最后我决定问你。

我的方法在控制器:

def duplicate
@order = Order.find_by(params[:id]).dup
@order.save
redirect_to root_path
end
我的<<p> strong> index.html.erb
<tr>
<% @orders.each do |order| %>
<td><%= order.customer.name %></td>
<td><%= link_to order.ref.upcase, order %></td>
<td><%= order.ebat %></td>
<td><%= order.adet %></td>
<td><%= number_to_currency(order.price) %></td>
<td><%= number_to_currency(order.price * order.adet, precision: 0) %></td>
<td><%= order.created_at.strftime("%Y-%m-%d") %></td>
<td><%= order.urun.upcase %></td>
<td><%= order.termin.strftime("%Y-%m-%d") %></td>
<td><%= link_to "Bu siparişi sil", order_path(order), data: {
turbo_method: :delete,
turbo_confirm: "Eminsin ?"
} %> | <%= link_to 'Duplicate', duplicate_order_path %>

</p>
</tr>

# I tried by indicating base_id as well but the result is the same 
# <%= link_to 'Duplicate', duplicate_order_path, base_id: order.id  %>

所以如果你能帮助我,我将非常感激。

提前谢谢你。

添加参数到path:

duplicate_order_path(id: order.id)

和改变

Order.find_by(params[:id]).dup

Order.find(params[:id]).dup

Order.find_by(id: params[:id]).dup

相关内容

最新更新