如何解决如何链接到 rails_admin 中的集合而不是belongs_to 中的单个项目?
我的公司有很多客户。默认情况下,在查看“公司”选项卡时,我有一个包含“客户”的字段。每个客户都有自己单独的链接到展示页面。我正在尝试将其连接起来,以便我不会将每个客户视为公司展示页面上的链接,而是将其视为属于该公司的“客户”索引的一般链接。
这是公司模型
has_many :clients,class_name: 'Client',primary_key: 'friendlyName',foreign_key: 'shortname'
这是客户端模型
belongs_to :company,class_name: 'Company',foreign_key: 'shortname',primary_key: 'friendlyName'
关系似乎设置正确。
这是我在 rails_admin 中尝试过的
config.model 'Company' do
exclude_fields :created_at,:updated_at
object_label_method do
:custom_label_method
end
list do
field :all_clients do
formatted_value do
path = bindings[:view].index_path(model_name: 'Client',all_clients: bindings[:object].id)
bindings[:view].link_to('Clients',path)
end
end
end
end
这是我找到的一个代码片段,它确实可以创建一个指向客户索引页面的自定义链接,但它没有考虑belongs_to 关联。
解决方法
您走在正确的轨道上,您需要像 RailsAdmin 那样在按公司过滤索引视图中的客户记录时构建链接。您需要手动执行一次以弄清楚链接是如何构建的。 在图片中,这就是我的意思
我添加了一个过滤器并查看了构建的 url rails admin。
确保您的客户索引配置具有公司字段才能执行此操作。
class Client < ApplicationRecord
rails_admin do
list do
field :company do
filterable true
end
end
end
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。