ActiveAdmin - Пользовательское действие для создания новой записи (отсутствуют обязательные ключи:: id) - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь создать пользовательское действие, позволяющее создать новую запись (в дополнение к стандартным действиям new и create).

Я просто добавил новое действие члена и ссылку через action_item.Сгенерировать ссылку уже не удается с No route matches {:action=>"new_photo_order", :controller=>"admin/orders"} missing required keys: [: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

Я не смог найти никаких решений, поэтому я спрашиваю, как вы должны добавить настраиваемое действие, позволяющее добавить новую запись?

1 Ответ

0 голосов
/ 25 октября 2018

Измените

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, как это

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