假设我有 2 个控制器。
广告客户活动和广告客户广告。
我需要advertisingr_ad 成为advertisingr_campaign 的孩子,但是由于我对activeadmin(以及ruby 本身)还很陌生,所以我遇到了一些问题。我正在尝试使用 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
但是绝对没有效果。虽然我看到控制器尝试执行我自定义覆盖的控制器但遇到相同的错误。
在我的 ads_campaign 模型中,我有
has_many :advertiser_ads, :class_name => 'Advertiser::Ad'
在我的 ads_ad 模型中
belongs_to :advertiser_campaign, :class_name => 'Advertiser::Campaign'
任何有关此问题的帮助将不胜感激。先感谢您。