0

我有一家有很多客户的公司。默认情况下,在查看公司选项卡时,我有一个包含客户的字段。每个客户都有自己单独的指向显示页面的链接。我正在尝试将其连接起来,这样我就不会将每个单独的客户视为公司展示页面上的链接,而是将其视为属于该公司的“客户”索引的一般链接。

这是公司模型

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 关联。

4

1 回答 1

0

您走在正确的轨道上,您需要像 RailsAdmin 在按公司过滤索引视图中的客户记录时那样构建链接。您需要手动执行一次才能确定链接的构建方式。在图像中,这就是我的意思

在此处输入图像描述

我添加了一个过滤器并查看了 url rails admin 构建的。

确保你有客户端索引配置有公司字段能够做到这一点。

class Client < ApplicationRecord
  rails_admin do
    list do
      field :company do
        filterable true
      end
    end
  end
end
于 2021-01-28T00:40:58.473 回答