J'ai pensé que ce serait bien s'il y avait une liste de noms de clé à afficher lors de la création de l'écran de liste.
Créer un modèle
models/user.rb
class User < ApplicationRecord
  include Table #Si vous l'incluez ici, vous pouvez l'utiliser comme méthode d'instance
  attribute :name
  attribute :email
  attribute :login_id
  attribute :password
end
models/concerns/table.rb
module Table
  extend ActiveSupport::Concern
  #Obtenir le nom de la colonne (symbole) sous forme de tableau
  def table_keys
    self.class.column_names.map(&:to_sym).reject { |column| %i[id created_at updated_at].include?(column) }
    #Cliquez ici si vous souhaitez l'obtenir sous forme de chaîne de caractères
    # self.class.column_names.reject { |column| %w[id created_at updated_at].include?(column) }
  end
  #Obtenir le nom de la colonne
  def col_name(column_name)
    self.class.human_attribute_name(column_name)
  end
end
 from @ useretc. avecself.class`nom_colonne.map (&: to_sym) et convertissez-la en symbolereject { |column| %w[id created_at updated_at].include?(column) }Exclure les noms de colonnes inutiles dansruby:views/users/index.html.slim
- if @users.present?
  table.table
    thead
      tr
        - first_user = @users.first
        - first_user.table_keys.each do |key|
          = tag.td first_user.col_name(key)
    tbody
      - @users.each do |user| 
        tr
          - user.table_keys.each do |key|
            = tag.td {|tag| tag.span user.send(key)}
- else
p Aucune donnée
Ce type d'écran est souvent utilisé pour devise et active_admin, mais il semble qu'il puisse également être utilisé lors du passage de la clé de validation au recto.
Si vous avez des conseils, n'hésitez pas à nous contacter.
Recommended Posts