簡體   English   中英

ActiveAdmin 1.0.0 Emirates_to-無法自動加載父級

[英]ActiveAdmin 1.0.0 belongs_to - Unable to autoload Parent

我正在使用Rails gem 'activeadmin', '~> 1.0.0.pre2' ,並且到目前為止已經能夠在我的項目中成功使用它。 幾個(大約10個)對象可以對其執行CRUD,有些甚至包括指向其他​​表的外鍵。 好東西!

我遇到的問題是,我必須通過belongs_to關系顯示幾個對象,但是當我在其ActiveAdmin模型注冊中的子對象上放置一個belongs_to時,嘗試在本地運行WEBrick時出現以下錯誤:

=> Booting WEBrick
=> Rails 4.2.4 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:495:in `load_missing_constant': Unable to autoload constant Admin::ParentClass, expected /app/admin/parent_class.rb to define it (LoadError)

這是當前存在的模型和ActiveAdmin注冊:

app / models / parent_class.rb

class ParentClass < ActiveRecord::Base
  has_many :sub_objects
end

app / admin / parent_class.rb

ActiveAdmin.register ParentClass do
  permit_params :title
end

app / models / sub_object.rb

class SubObject < ActiveRecord::Base
  belongs_to :parent_class
end

app / admin / sub_object.rb

ActiveAdmin.register SubObject do
  belongs_to :parent_class

  permit_params :name
end

使用上述設置,我仍然收到錯誤: Unable to autoload constant Admin::ParentClass, expected /app/admin/parent_class.rb to define it (LoadError)

......但如果我注釋掉belongs_to在應用程序/管理/ sub_object.rb,它工作正常(但路線/admin/parent_classes/{id}/sub_objects沒有定義,並且不工作)

為什么會這樣?為了進行這項工作(我在上段中所述的路線),我需要做什么?

Timo (ActiveAdmin項目成員)對我輸入的Github問題的一些幫助下,我得以弄清楚:

belongs_to :parent_class, class_name: "::ParentClass"

這似乎也與我的特定項目有關,因為我無法在裝有最新Active Admin 1.0.0 gem並已安裝(在不具有class_name屬性的情況下, belongs_to工作)的香草Rails 4應用程序中對其進行重現。

它不是“標准” Rails應用程序,因為我們有一個“主”應用程序在具有Angular前端的主名稱空間中運行API,然后在其自己的/ admin名稱空間中運行ActiveAdmin為我們處理許多重復的CRUD操作。 但是直到現在,ActiveAdmin仍能正常工作。

如果有時間,我將調查為什么在我的項目中需要class_name,但是除了確保它真正起作用之外,我可能只是不問就繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM