ruby-on-rails - 如何在 Rails 的数据表中显示名称而不是 user_id
问题描述
几天来,我在我的应用程序中遇到了一个问题,这让我思考了很多:我有一个名为“Devices”的数据表,其中包含对“Users”的引用,在我的数据表中我要带回来“user_id”,但我想在后端获取该数据并在前端显示“用户名”。
我怎样才能得到预期的结果?
在“用户”列中托管“user_id”
在我的 index.html.haml 中:
.table__wrapper
= form_tag edit_multiple_devices_path, method: :get do
%table{:role => 'datatable'}
%thead
%tr
%th
%th.abbr{:title => "aidi"} Id
%th.abbr{:title => "imei"} Imei
%th.abbr{:title => "brand"} Marca
%th.abbr{:title => "model"} Modelo
%th.abbr{:title => "prov"} Proovedor
%th.abbr{:title => "fac"} Factura
%th.abbr{:title => "din"} Entrada
%th.abbr{:title => "sim"} Sim
%th.abbr{:title => "iccid"} Iccid
%th.abbr{:title => "status"} Status
%th.abbr{:title => "user_id"} Usuario
%th.abbr{:title => "client"} Cliente
%th.abbr{:title => "dout"} Salida
%th.abbr{:title => :use} Usado
%th.abbr{:title => :old} Reutilizado
%tbody
- @devices.each do |device|
%tr
%td= check_box_tag "device_ids[]", device.id
%td= device.aidi
%td= device.imei
%td= device.brand
%td= device.model
%td= device.prov
%td= device.fac
%td= device.din
%td= device.sim
%td= device.iccid
%td= device.status
%td= device.user_id
%td= device.client
%td= device.dout
%td= device.use
%td= device.old
= submit_tag "Editar", class: "button is-primary is-rounded"
在我的 device.rb
class Device < ApplicationRecord
belongs_to :user
attr_accessible :aidi, :imei, :brand, :model, :prov, :fac, :din, :sim, :iccid, :status, :user_id, :client, :dout, :use, :old
end
在我的 user.rb
class User < ApplicationRecord
has_many :devices
end
解决方案
好的 我的问题是重复的。这里
直接的“解决方案”是 %td = device.user.try: email
推荐阅读
- python - 熊猫数据框分组删除列
- reactjs - React Bootstrap Form.Check with Formik
- makefile - 运行Makefile时如何摆脱“错误4”
- postman - 如何在邮递员中修改 Content-Type
- node.js - 在调用 beforeEach() 之前异步 beforeAll() 没有完成
- r - 将向量转换为对排列的矩阵
- javascript - 为什么即使我在 JavaScript 中使用 XMLHttpRequest 调用过一次,api 也会响应两次?
- sql - 加入联合返回错误的结果
- javascript - Js 函数仅适用于 index.html
- node.js - 是否可以在不使用框架的情况下在 Node.js 中创建 JWT 身份验证或类似的东西?