2016-09-30 73 views
1

在我的應用程序標籤名稱我有categorieslabels他們都屬於products主動聯繫不正確顯示

在管理面板,用戶可以添加產品,並創建標籤和分類,然後指定類別和標籤產品。

當我創建標籤的名稱在標籤正確顯示面板(見圖)

enter image description here

的問題是,當他們被分配到產品標籤名稱不正確的顯示(見下面的照片),但類別名稱正在顯示。這很奇怪,因爲兩列具有相同的設置。

而且在Admin products panel標籤與數字Label#1``Label#2等顯示(見下圖)

而在_navbar.html.erb我有這樣的代碼,同時展示分類和標籤...並且在那裏正確顯示。

   <ul class="dropdown-menu" role="menu"> 
        <% @categories.each do |category| %> 
         <li><%= link_to category.name, category %></li> 
        <% end %>   
       </ul> 
      </li>  
       <li class="dropdown full-width"> 
       <a href="#" class="dropdown-toggle" 
       data-toggle="dropdown"> 
        Labels 
       </a> 
       <ul class="dropdown-menu" role="menu"> 
        <% @labels.each do |label| %> 
         <li><%= link_to label.label_name, label %></li> 
        <% end %>  
       </ul> 
      </li>  

我在這裏錯過了什麼嗎?我看不出爲什麼標籤顯示不正確。

有沒有人與活動管理員有相同或類似的問題?

任何人都可以看看這個嗎?

預先感謝

enter image description here

enter image description here

enter image description here

這是app/admin/category.rb

ActiveAdmin.register Category do 

permit_params :name 

end 

app/admin/label.rb有這樣的代碼:

ActiveAdmin.register Label do 

permit_params :label_name 

end 

而在app/admin/product.rb

ActiveAdmin.register Product do 


permit_params :title, :description, :image, :price_usd, :price_isl, :category_id, :label_id 

index do 
    column :title 
    column :category 
    column :label 
    column :created_at 

    column :price_isl, :sortable => :price_isl do |product| 
     number_to_currency product.price_isl 
    end 
    column :price_usd, :sortable => :price_usd do |product| 
     number_to_currency product.price_usd 
    end 

    actions 
end 
end 

然後這裏有Schema.rb

create_table "labels", force: :cascade do |t| 
    t.string "label_name" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
end 

create_table "categories", force: :cascade do |t| 
    t.string "name" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
end 

回答

1

主動聯繫的部位有時會非常棘手與命名.. 。在您的categories表中,您有一個column,名爲:name,它似乎正在按照您的要求工作?

您是否試圖將labels.rb中的label_name列更改爲只是名稱?

我敢肯定,這將爲你做的伎倆。

Active Admin最有可能不會註冊labelname之間的下劃線,這就是它顯示事物的方式。

+0

謝謝你有時候它是你鴕鳥政策看到:)簡單的事情:

class Label < ActiveRecord::Base def display_name label_name end end 

您還可以在ActiveAdmin初始化配置顯示名稱它現在工作完美 – DaudiHell

5

Active Admin在顯示對象時進行有根據的猜測。

這是方法列表它試圖調用順序

  • DISPLAY_NAME
  • FULL_NAME
  • 用戶名
  • 登錄
  • 標題
  • 電子郵件
  • to_s

因此,它適用於類別,因爲類別具有:name屬性。

labels,你可以做到以下幾點:

ActiveAdmin.setup do |config|  
    config.display_name_methods = [:display_name, :full_name, :name, ..., :to_s] 
end