Ich dachte, es wäre schön, wenn beim Erstellen des Listenbildschirms eine Schlüsselnamenliste zur Anzeige vorhanden wäre.
Erstellen Sie ein Modell
models/user.rb
class User < ApplicationRecord
include Table #Wenn Sie es hier einfügen, können Sie es als Instanzmethode verwenden
attribute :name
attribute :email
attribute :login_id
attribute :password
end
models/concerns/table.rb
module Table
extend ActiveSupport::Concern
#Spaltennamen (Symbol) als Array abrufen
def table_keys
self.class.column_names.map(&:to_sym).reject { |column| %i[id created_at updated_at].include?(column) }
#Klicken Sie hier, wenn Sie es als Zeichenfolge erhalten möchten
# self.class.column_names.reject { |column| %w[id created_at updated_at].include?(column) }
end
#Spaltennamen abrufen
def col_name(column_name)
self.class.human_attribute_name(column_name)
end
end
column_names.map (&: to_sym)
ab und konvertieren Sie sie in ein Symbolreject { |column| %w[id created_at updated_at].include?(column) }
Schließen Sie unnötige Spaltennamen in ausruby: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 Keine Daten
Diese Art von Bildschirm wird häufig für devise und active_admin verwendet, aber es scheint, dass er auch verwendet werden kann, wenn der Schlüssel zur Validierung an die Vorderseite übergeben wird.
Wenn Sie einen Rat haben, zögern Sie bitte nicht, uns zu kontaktieren.
Recommended Posts