我有一个简单的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