私は2つのコントローラを持っているとしましょう。
広告主_キャンペーンと広告主_広告。
広告主_広告を広告主_キャンペーンの子にする必要がありますが、私はアクティブ管理者 (およびルビー自体) にかなり慣れていないため、いくつか問題があります。ActiveAdmin を使用してネストされたリソースを実行しようとしています。
以下のコードは実際に必要なルートを登録します
ActiveAdmin.register Advertiser::Ad do
belongs_to :advertiser_campaign
end
しかし、/admin/advertiser_campaigns/1/advertiser_ads にアクセスしようとすると、エラーが発生します
NoMethodError in Admin::AdvertiserAdsController#index
undefined method `find' for nil:NilClass
これはおそらく、ルートが非常にうまく機能し、問題がコントローラーのどこかにあることを意味します。このようなことをして、ActiveAdminコントローラーを上書きしようとしました
controller do
def index
index! do |format|
@advertiser_ads = Advertiser::Ad.all
format.html
end
end
end
しかし、効果はまったくありません。コントローラーがカスタムで上書きされたコントローラーを実行しようとしていることがわかりますが、同じエラーが発生します。
私のadvertiser_campaignモデルでは、
has_many :advertiser_ads, :class_name => 'Advertiser::Ad'
そして私のadvertiser_adモデルで
belongs_to :advertiser_campaign, :class_name => 'Advertiser::Campaign'
この問題に関するヘルプは非常に高く評価されます。前もって感謝します。