主动联系不正确显示
问题描述:
在我的应用程序标签名称我有categories
和labels
他们都属于products
主动联系不正确显示
在管理面板,用户可以添加产品,并创建标签和分类,然后指定类别和标签产品。
当我创建标签的名称在标签正确显示面板(见图)
的问题是,当他们被分配到产品标签名称不正确的显示(见下面的照片),但类别名称正在显示。这很奇怪,因为两列具有相同的设置。
而且在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>
我在这里错过了什么吗?我看不出为什么标签显示不正确。
有没有人与活动管理员有相同或类似的问题?
任何人都可以看看这个吗?
预先感谢
这是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
答
主动联系的部位有时会非常棘手与命名.. 。在您的categories
表中,您有一个column
,名为:name
,它似乎正在按照您的要求工作?
您是否试图将labels.rb
中的label_name
列更改为只是名称?
我敢肯定,这将为你做的伎俩。
Active Admin最有可能不会注册label
和name
之间的下划线,这就是它显示事物的方式。
答
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
谢谢你有时候它是你鸵鸟政策看到:)简单的事情:
您还可以在ActiveAdmin初始化配置显示名称它现在工作完美 – DaudiHell