ruby-on-rails - ActiveAdmin - 创建新记录的自定义操作(缺少必需的 key : :id)

标签 ruby-on-rails activeadmin

我正在尝试创建一个自定义操作,允许创建新记录(除了默认的新建和创建操作之外)。

我只是通过 action_item 添加了一个新的成员操作和一个链接。链接生成已失败,没有路由匹配 {:action=>"new_photo_order", :controller=>"admin/orders"} 缺少必需的键:[:id]

action_item :new_photo_order, only: :index do
  link_to 'New photo order', new_photo_order_admin_order_path
end

member_action :new_photo_order, method: [:get, :post] do
  if request.post?
    # create resource
  else
    # render template with form
  end
end

我找不到任何解决方案,所以我想问一下您应该如何添加允许添加新记录的自定义操作?

最佳答案

改变这个

member_action :new_photo_order, method: [:get, :post] do
  if request.post?
    # create resource
  else
    # render template with form
  end
end

到此

collection_action :new_photo_order, method: [:get, :post] do
      if request.post?
        # create resource
      else
        # render template with form
      end
    end

因为当我们定义 member_action 时,它定义了一个类似于 orders/:id/new_photo_order 的路由,它需要 id。或者如果您想使用member_action,您需要在action_item中传递订单ID,如下所示

action_item :new_photo_order, only: :index do
  link_to 'New photo order', new_photo_order_admin_order_path(order.id)
end

关于ruby-on-rails - ActiveAdmin - 创建新记录的自定义操作(缺少必需的 key : :id),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52986277/

相关文章:

javascript - iframe 或 JS 将 Rails 嵌入第 3 方站点?

javascript - 我怎样才能得到 Rails.env.production 的等价物?在 application.js 中

ruby-on-rails - 使用事件管理员进行 Rails 测试

ruby-on-rails - 如何避免 N+1 查询并在 Active Admin 表单上执行预加载

ruby-on-rails - Heroku 上的 ActiveAdmin 预编译错误

ruby-on-rails-3 - 覆盖 active_admin form.has_many 中的默认范围

ruby-on-rails - 急切加载嵌套关联和范围

css - Bootstrap - 调整浏览器大小时背景确实扩展了 100% 的宽度

ruby-on-rails - ruby ,野科切 : sort nodeset by attribute value

ruby-on-rails - 如何在 ActiveAdmin 中使用 ActiveStorage `has_many_attached` 编辑多个附加图像