Web アプリケーションの管理者とフロント エンドの両方で承認と認証に単一のユーザー モデルを使用して、devise、アクティブな管理者、および cancan を正常にマージしました。ユーザー モデルのブール値フラグが承認されましたか? そのため、アプリケーションを公開できます (データベースで承認された状態の true または false)。今、私は管理ページからユーザーを「のみ」承認したいと考えています。
in app\model\user.rb
def approve!
#set approved boolean state in database to true
approved = true
end
def disapprove!
#set approved boolean state in database to false
approved = false
end
アクティブな管理者に私は持っています。
app\admin\user.rb
member_action :approve, :method => :put do
App.find(params[:id]).approve!
redirect_to [:admin, resource], :notice => "Developer Approved"
end
member_action :disapprove, :method => :put do
user = User.find(params[:id])
user.disapproved!
redirect_to admin_user_path(user), notice: "Successfully Disapproved Developer!"
end
これは列リンク用です
column "Approve Developer" do |user|
if user.developer? && user.approved_developer?
link_to 'Disapprove Developer', "#"
elsif user.developer? && !user.approved_developer?
link_to 'Approve Developer',approve_admin_user_path
else
"Not A Developer"
end
end
実行中のレーキ ルートが表示されます
approve_admin_user PUT /admin/users/:id/approve(.:format) admin/users#approve
disapprove_admin_user PUT /admin/users/:id/approve(.:format) admin/users#disapprove
すべて問題ないように見えますが、ページを読み込んで開発者リンクの承認または開発者リンクの承認を拒否すると、No route matches {:action=>"approve", :controller=>"admin/users"}
エラーが発生します。
ActiveAdmin.routes(self)
私はまた、routes.rbのようにアクティブな管理者用のルートを設定しましresources :users
た。ここで何が間違っているのかまだわかりません。助けていただければ幸いです。