2016-11-15 7 views
0

Ich benutze rails_admin gem und anstelle des eigentlichen ID-Feldes aus der Datenbank möchte ich nur eine aktuelle Nummer verwenden, damit der Admin nicht sehen kann, was die eigentliche ID in meinem ist db. Bisher habe ich versucht:Wert zuweisen zu rails_admin Listenfeld

# Fields in Projects model 
    config.model 'Project' do 
    @currentId = 1; 
    list do 
     field :id do 
     @currentId 
     end 
     field :year 
     field :title 
     field :intro 
     field :description 
     field :confidential 
     field :star 
     field :image 
    end 
    @currentId += 1; 
    end 

Aber das zeigt nur meine Db-ID. Irgendwelche Vorschläge?

Antwort

0

[Antwort]: Solange der db zurückgesetzt tut es Wert id (zB MySQL), können Sie dies tun:

currentId = 0 
    # Fields in Projects list 
    config.model 'Project' do 

    list do 
     field :id do 
     formatted_value do 
      currentId +=1 
     end 
     end 
     field :year 
     field :title 
     field :intro 
     field :description 
     field :confidential 
     field :star 
     field :image 
    end 

Wenn die Datenbank diesen Wert erhöht wird hält, als der aktuelle Benutzer muss als eine Bindung übergeben werden und die ID kann leicht in der Hauptansicht der Liste von rails_admin

1

Sie können für diesen Zweck Folgendes tun.

  1. hide Feld

    list do 
        configure :id do 
        hide 
        end 
    
        include_all_fields # all other default fields will be added after, conveniently 
    end 
    
  2. ausschließen Feld

    list do 
        exclude_fields :id 
    end 
    
  3. Format Feldwert

    list do 
        field :id do 
        formatted_value do # used in form views 
         value++ 
        end 
        end 
    
        include_all_fields # all other default fields will be added after, conveniently 
    end 
    

für mehr Konfigurations Besuch https://github.com/sferik/rails_admin/wiki/Fields

+0

optimiert werden, aber es war noch einfacher als das. Bitte überprüfe meine Antwort unten! –

+0

Dies hat nicht funktioniert. Bitte überprüfe meinen Kommentar –