活动管理员未正确显示标签名称
Active Admin not displaying Label names correctly
在我的应用程序中,我有 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>
我是不是漏掉了什么?我不明白为什么标签显示不正确。
有没有人遇到与 active admin 相同或相似的问题?
谁能看一下这个?
提前致谢
这是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
Active Admin 有时在命名时会很棘手...在您的 categories
table 中,您有一个名为 :name
的 column
,它似乎可以正常工作它到?
您是否尝试将 labels.rb
中的 label_name
列更改为仅名称?
我很确定这对你有用。
活动管理员很可能没有在 label
和 name
之间注册下划线,这就是它显示内容的方式。
Active 管理员在显示 objects 时进行有根据的猜测。
这是它尝试按顺序调用的方法列表
- display_name
- full_name
- 姓名
- 用户名
- 登录
- 标题
- 电子邮件
- to_s
因此,它适用于类别,因为类别具有 :name
属性。
对于 labels
,您可以执行以下操作:
class Label < ActiveRecord::Base
def display_name
label_name
end
end
您还可以在 ActiveAdmin 初始值设定项中配置显示名称:
ActiveAdmin.setup do |config|
config.display_name_methods = [:display_name, :full_name, :name, ..., :to_s]
end
在我的应用程序中,我有 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>
我是不是漏掉了什么?我不明白为什么标签显示不正确。
有没有人遇到与 active admin 相同或相似的问题?
谁能看一下这个?
提前致谢
这是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
Active Admin 有时在命名时会很棘手...在您的 categories
table 中,您有一个名为 :name
的 column
,它似乎可以正常工作它到?
您是否尝试将 labels.rb
中的 label_name
列更改为仅名称?
我很确定这对你有用。
活动管理员很可能没有在 label
和 name
之间注册下划线,这就是它显示内容的方式。
Active 管理员在显示 objects 时进行有根据的猜测。
这是它尝试按顺序调用的方法列表
- display_name
- full_name
- 姓名
- 用户名
- 登录
- 标题
- 电子邮件
- to_s
因此,它适用于类别,因为类别具有 :name
属性。
对于 labels
,您可以执行以下操作:
class Label < ActiveRecord::Base
def display_name
label_name
end
end
您还可以在 ActiveAdmin 初始值设定项中配置显示名称:
ActiveAdmin.setup do |config|
config.display_name_methods = [:display_name, :full_name, :name, ..., :to_s]
end