2013-10-11 40 views
2

我正在構建每日交易Rails應用程序以學習RoR。無法在關聯模型(belongs_to/has_many)的Active Admin索引屬性中顯示 - Rails 3.2

我在過去的幾個小時裏面臨着一個問題:我無法獲得活動管理員上其他關聯模型的模型屬性。讓我告訴你到底是什麼問題:

我有兩種模式:品牌(即交易的品牌)和交易。一筆交易屬於一個品牌,但一個品牌可以有很多交易。

型號/ deal.rb是這樣的:

class Deal < ActiveRecord::Base 
    belongs_to :brand 

,我們的產品型號/ brand.rb:

class Brand < ActiveRecord::Base  
    has_many :deals 

attr_accessible :name 

,我做我的遷徙中的t.belongs_to所以這是確定。

在主動管理的交易創建形式,I型,爲管理員,哪個牌子的交易相關聯:

管理/ deal.rb

ActiveAdmin.register Deal do 
# -- Form ----------------------------------------------------------- 
    form do |f| 
    f.inputs "Brand (i.e. client)" do 
     f.input :brand_id, :label => "Select a brand:", :as => :select, :collection => Brand.all 
    end 

它的偉大工程,我可以創造與某個品牌進行交易。但我不能管理我的交易清單顯示品牌名稱IUN活動Admin'x指數:

ActiveAdmin.register Deal do 
index do 
    selectable_column 
    # id_column 
    column :title 
    column :deal_amount 
    column :brand do |deal| 
    link_to deal.brand.name, admin_brand_path(deal.brand) 
    end 

...不起作用。

我該怎麼做?

我嘗試了一切,但我基本上不知道如何獲取品牌的名稱,因爲它與交易表中的brand_id匹配。

任何幫助表示讚賞。

UPDATE 我得到的錯誤是不明白的功能。名稱:未知的方法「名稱」

+0

的可能重複的[如何顯示在Active管理索引相關聯的模型的屬性與所屬\ _to /具有\ _many關係(滑軌3.2 /主動管理員)](http://stackoverflow.com/questions/19307302/ how-to-display-associated-models-attribute-in-active-admin-index-with-belong-t) –

+0

什麼「不起作用」?你看到一個例外嗎?或者沒有出現在那裏? –

+0

請注意,如果我使用auto_link它的作品雖然...奇怪,但我不想使用它,因爲它是相當古老的fahsioned rails我認爲 – Mathieu

回答

4

您需要處理deal.brandnil的情況。

ActiveAdmin.register Deal do 
    index do 
    selectable_column 
    # id_column 
    column :title 
    column :deal_amount 
    column :brand do |deal| 
     if deal.brand.present? 
     link_to deal.brand.name, admin_brand_path(deal.brand) 
     else 
     status_tag('Empty') 
     end 
    end 
    end 
end 
+0

它的工作感謝您的幫助! – Mathieu

0

:brand柱看起來正確的給我。如果您在控制檯中發現deal,您會得到什麼deal.branddeal.brand.name

+0

我會嘗試在控制檯今晚 – Mathieu

相關問題