2016-09-30 80 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