gpt4 book ai didi

ruby-on-rails-3 - 如何在 rails 3 中使用事件管理员显示名称而不是 id

转载 作者:行者123 更新时间:2023-12-04 16:45:28 25 4
gpt4 key购买 nike

嗨,我正在开发一个使用 devise 和 ActiveAdmin 的 Rails 3.2.9 应用程序。我有像用户和公司这样的模型。我希望管理员从特定公司的注册用户列表中选择一名经理。

我的用户表有这些字段:id、用户名、电子邮件、company_id、密码等

我公司的表有:id、company_name、manager_id(这只是用户的 id)、created_at 等

管理员为公司选择了经理后,我希望他的姓名(用户表中的用户名)出现在公司的索引页面中,但现在索引页面中只显示 manager_id。 (编辑时,选择经理的下拉菜单显示用户名列表)

请让我知道如何使用查询/连接语句来完成此操作

这是我的 公司.rb 管理员文件

ActiveAdmin.register Company do
index do
column "Company", :name
column :address
column "No. of Subscriptions", :no_of_licenses
column "Manager", :manager_id
default_actions
end
filter :name

form do |f|
f.inputs "Company Details" do
f.input :name
f.input :address
f.input :no_of_licenses, :label => 'No of Subscriptions'
f.input :manager_id, :as => :select, :collection => User.joins('LEFT OUTER JOIN companies ON users.company_id = companies.id').map{|u| [u.username, u.id]}
end
f.buttons
end
end

最佳答案

由于您使用了 manager_id 而不是 user_id,事件管理员将其视为单个整数值。

要使用 id 自动获取记录,您可以生成迁移并将列更改为 user_id。

如果您不想更改列名,则将 if 传递给用户记录,

column "Manager" do |m|
usr = User.find(m.manager_id)
link_to usr.title, admin_user_path(m.manager_id)
end

关于ruby-on-rails-3 - 如何在 rails 3 中使用事件管理员显示名称而不是 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167394/

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