アプリで rails_admin を使用しています。モデルにいくつかのスコープがあります。以下に例を示します。
class User < ActiveRecord::Base
scope :unconfirmed, where('confirmed_at IS NULL')
end
rails_admin でこれらのスコープにフィルターとしてアクセスすることは可能ですか? アクティブな管理者と同じように。ユーザーセクションのどこかにボタンを追加するようなものです。
ありがとう
アプリで rails_admin を使用しています。モデルにいくつかのスコープがあります。以下に例を示します。
class User < ActiveRecord::Base
scope :unconfirmed, where('confirmed_at IS NULL')
end
rails_admin でこれらのスコープにフィルターとしてアクセスすることは可能ですか? アクティブな管理者と同じように。ユーザーセクションのどこかにボタンを追加するようなものです。
ありがとう
私はそれが非常に古い問題であることを知っていますが、誰かが私をこのスレッドにリダイレクトしました. rails_admin を次のように設定することで、これを簡単に実現できます。
# /config/initializers/rails_admin.rb
config.model User do
list do
scopes [nil, :unconfirmed]
end
end
これにより、[すべて]および[未確認]というラベルの付いたリストの上部に 2 つのタブが挿入され、それぞれのタブでフィルター処理されたレコードが表示されます。これらのタブをクリックすると、カスタム スコープを適用するクエリが起動されます
それが役に立てば幸い。
カスタム rails_admin アクションを追加することで、これを成功させることができました。
詳細: https://github.com/sferik/rails_admin/wiki/Custom-action
例えば:
# in lib/rails_admin/unconfirmed.rb
require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'
module RailsAdminUnconfirmed
end
module RailsAdmin
module Config
module Actions
class Unconfirmed < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :controller do
Proc.new do
@objects = User.unconfirmed
render "index"
end
end
register_instance_option :collection do
true
end
end
end
end
end
重要なのは、それが「収集」アクションであることです。次に、それを rails_admin セットアップに追加します。
# in config/initializers/rails_admin.rb
# require File.join(Rails.root, "lib", "rails_admin", "unconfirmed")
RailsAdmin.config do |config|
config.actions do
# root actions
dashboard
# collection actions
index
unconfirmed do
only 'User'
end
end
# snip!
end
この新しいアクションは、User モデルのインデックス レベルで表示されます。