首页 > 解决方案 > 如何在 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

标签: ruby-on-railsrubyruby-on-rails-3datatabledevise

解决方案


好的 我的问题是重复的。这里

直接的“解决方案”是 %td = device.user.try: email


推荐阅读