gpt4 book ai didi

ruby-on-rails - 事件管理员未正确显示标签名称

转载 作者:太空宇宙 更新时间:2023-11-03 17:09:45 26 4
gpt4 key购买 nike

在我的应用程序中,我有 categorieslabels 它们都属于 products

在管理面板中,用户可以添加产品,创建标签和类别,然后为产品分配类别和标签。

当我创建标签时,名称在标签面板中正确显示(见照片)

enter image description here

问题是标签名称在分配给产品时没有正确显示(见下图),但显示了类别名称。这很奇怪,因为两列的设置相同。

并且在Admin products 面板中,标签显示有数字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 相同或相似的问题?

谁能看看这个?

提前致谢

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

最佳答案

Active Admin 在显示对象时进行有根据的猜测。

这是它尝试按顺序调用的方法列表

  • 显示名称
  • 全名
  • 姓名
  • 用户名
  • 登录
  • 标题
  • 电子邮件
  • to_s

因此,它适用于类别,因为类别具有 :name 属性。

对于标签,您可以执行以下操作:

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

关于ruby-on-rails - 事件管理员未正确显示标签名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com