Rails复制项目方法呈现编辑表单

时间:2018-10-04 15:11:31

标签: ruby-on-rails

我正在尝试复制活动的商品记录。

在我的items_controller上:

  def duplicate
      @item = Item.find((params[:id]))
      @item_copy = @item.dup
      render 'new'
  end

我从显示视图中称呼它,

<%= link_to "copy", duplicate_item_path(params[:id]) %>

路线:

  resources :items do
      member do
        get 'duplicate'
      end
    end

点击链接后,我需要编辑@item。

如果我将表单更改为

<%= simple_form_for(@item_copy) do |f| %>

我得到了预期的结果,这是一个充满@item属性的新表格。

我真的需要单独的表格来进行复制吗?还是我遗漏了什么?

1 个答案:

答案 0 :(得分:0)

您需要在操作中正确定义@item

def duplicate
  @item = Item.find(params[:id]).dup
  render 'new'
end

在这种情况下,两种操作只能有一个带有<%= simple_form_for(@item) do |f| %>的表格。