2016-03-28 13 views
1

私はUserArticleという2つのモデルを持っていますが、ユーザーは多くの場合、articlesを持つことができます。 ユーザーには、statusの値が1または0の列があります。 私の質問は、ユーザーのリストでは、いくつかの条件でレコードを制約する方法です。たとえば、'SELECT * FROM users WHERE status = 1'?RailsAdmin条件によってリスティングレコードを制限する方法は?

私はアソシエーションのスコープを調べましたが、それは私が必要と考えるものではありません。

たとえば、下の画像では、著者「Kame Man」はリストに表示されません。

​​

+0

私はrails_adminを使用していますが、デフォルトではデータベースのすべてのレコードが表示されますが、条件を追加する場所はわかりません。 – Gricher

+0

[フィールドの表示設定](https://github.com/sferik/rails_admin/wiki/Fields#visibility-and-ordering)、[モデル別設定](https://github.com/sferik/rails_admin#per-モデル)。 – Amadan

答えて

2

次のようにあなたのUserモデルに設定scopesする必要があります。そして、

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

デフォルトとして適切なスコープを使用するようにRailsAdminを設定します。次のようにあなたの場合、activeには:

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

は、詳細はRailsAdmin Wikiを参照してください。

関連する問題