ActiveAdmin中的多态单例

问题描述 投票:0回答:1

我有以下数据结构:

class BankAccount < ApplicationRecord
  belongs_to :bankable, polymorphic: true
end

class Buyer < ApplicationRecord
  has_one  :bank_account, as: :bankable
end

class Vendor < ApplicationRecord
  has_one  :bank_account, as: :bankable
end

我在routes.rb中定义了额外的路由:

namespace :admin do
  resources :buyers do
    resource :bank_account
  end
  resources :vendors do
    resource :bank_account
  end
end

我的ActiveAdmin是:

ActiveAdmin.register BankAccount do
  actions :all, except: [:index, :destroy]

  controller do
    defaults singleton: true
    belongs_to :buyer, :vendor, polymorphic: true
  end
end

但是当试图通过bank_account创建一个新的admin/buyers/1/bank_account/new时,

我收到以下错误:

No route matches {:action=>"index", :buyer_id=>"1", :controller=>"admin/bank_accounts"}

谢谢你的帮助!

ruby-on-rails singleton activeadmin polymorphic-associations
1个回答
0
投票

正如评论中提到的那样,将resource :bank_account改为resources :bank_account。修改后可以在控制台中运行命令rails routes/rake routes并检查所需的路由是否出现。

© www.soinside.com 2019 - 2024. All rights reserved.