2016-03-28 16 views
1

Ich habe zwei Modelle - User und Article, in dem ein Benutzer viele articles haben. In Benutzer gibt es eine Spalte status, der Wert ist entweder 1 oder 0 Meine Frage ist, in der Benutzer-Eintrag, wie Constraint ich die Aufzeichnungen von einigen Bedingungen. Zum Beispiel wie 'SELECT * FROM users WHERE status = 1'?RailsAdmin, wie Listendatensätze nach Bedingungen begrenzt werden?

Ich habe in Verbänden Scoping gesucht, aber nicht denke, es ist das, was ich brauche.

Zum Beispiel im Bild unten, Autor ‚Kame Man‘ in der Liste angezeigt werden soll nicht.

enter image description here

+0

ich rails_admin verwende, standardmäßig es alle Datensätze aus der db zeigt, weiß ich nicht, wo die Bedingungen hinzuzufügen. – Gricher

+0

[Felder Sichtbarkeit config] (https://github.com/sferik/rails_admin/wiki/Fields#visibility-and-ordering), [pro Modell config] (https://github.com/sferik/rails_admin#per- Modell). – Amadan

Antwort

2

Sie müssen Setup scopes in Ihrem User Modell wie folgt:

class User < ActiveRecord::Base 
    scope :active, -> { where(state: 1) } 
    scope :inactive, -> { where(state: 0) } 
end 

dann die RailsAdmin konfigurieren Sie den entsprechenden Bereich als Standard zu verwenden. In Ihrem Fall active wie folgt:

RailsAdmin.config do |config| 
    config.model User do 
    list do 
     scopes [:active] 
    end 
    end 
end 

für weitere Informationen zu RailsAdmin Wiki finden.

Verwandte Themen