2016-02-13 102 views
0

我在rails項目中的activeadmin中出現了一個奇怪的問題。
我已經創建了新的rails項目和兩個表格如下。
外鍵不能在rails項目中的activeadmin中工作

rails g model category title:text 

rails g model subcategory category:references title:text 

子類別屬於與外鍵「CATEGORY_ID」引用關鍵詞類別。 我已經改變了類別和子類別模型,如下所示。

class Category < ActiveRecord::Base 
    has_many :subcategories, dependent: :destroy 
end 

class Subcategory < ActiveRecord::Base 
    belongs_to :category 
    default_scope -> { order(created_at: :desc) } 
end 

我加在Gemfile中並安裝activeadmin寶石。

ActiveAdmin.register Category do 

    permit_params :title 

end 

ActiveAdmin.register Subcategory do 

    permit_params :category_id, :title 

end 

我登錄成功。
我添加了新的類別。如果我單擊該子類別以創建新的子類別,則類別項目會帶來類似圖像的錯誤。 enter image description here

我想顯示我添加的類別。 最好的問候。

回答

2

這沒有錯誤。

這些是類別對象。現在,您可以決定要顯示哪個類別對象的哪個屬性。名稱?,說明?

你可以有一個形狀像這樣:

ActiveAdmin.register Subcategory do 
    permit_params :name, :description, :category_id 

    form do |f| 
    f.semantic_errors *f.object.errors.keys 

    f.inputs "Details" do 
     f.input :name 
     f.input :description 
     f.input :category_id, :as => :select, :collection => Category.all.collect {|category| [category.name, category.id] } 
    end 
    f.actions 
    end 
end 

注行:f.input :category_id, :as => :select, :collection => Category.all.collect {|category| [category.name, category.id] }

我說來填充子類別字段與所有現有的類別,顯示他們的名字,並使用其ID 。

希望這會有所幫助。

+0

感謝您的快速信息。我應該在哪裏放置代碼? –

+0

「ActiveAdmin.register類別」的塊內部# –

+0

類似上述內容。 –