销毁的语义嵌套表格

时间:2018-07-29 11:30:31

标签: ruby-on-rails activeadmin

我具有这种语义嵌套形式,可以销毁Active Admin中的嵌套对象。

= semantic_form_for book.chapters.new, url: {controller: "admin/products", action: :remove_chapter} do |f|
  = f.inputs do
    li
      label Select
      = f.collection_select :chapter_product_id, book.chapter_products.order(:name), :id, :name, include_blank: 'Select Chapter'

  = f.actions do
    = f.action :submit, label: "Remove Chapter"

它工作正常,但是我觉得使用semantic_for_for book.chapters.new是错误的,因为我实际上没有创建任何东西。

我只是基于集合进行下拉选择以删除对象。

只是想看看是否有比我现在做的更好的方法。

我本来只是想在table_for中添加一个删除按钮,但是即使我在语义_form中使用与控制器完全相同的路由,我也似乎无法正确地指向member_action而没有路由错误。 method: :post

尝试了该线程中的许多选项,但均未成功-https://github.com/activeadmin/activeadmin/issues/53

谢谢!

1 个答案:

答案 0 :(得分:0)

我只是从另一个简单的角度来考虑它。

我直接链接到嵌套资源的销毁,而不是试图在母对象中执行member_action。

table_for product.chapters do
  ...
  column(:delete) { |c| link_to 'Delete', admin_chapter_path(c), class: 'member_link', method: :delete, 'data-confirm': "Are you sure you want to delete this?" }
end

由于我想重定向回同一页,因此我只是入侵了嵌套对象页面上的controller方法,并从那里管理重定向。

ActiveAdmin.register Chapter do
  actions :index, :show, :destroy

  controller do
    def destroy
      ...
      redirect_back fallback_location: admin_chapter_path, notice: "Message"
    end
  end
end