gpt4 book ai didi

ruby-on-rails - 如何在一个 Rails Controller 中使用两个 Devise 的 before_filters?

转载 作者:行者123 更新时间:2023-12-02 00:09:04 26 4
gpt4 key购买 nike

如果我在我的应用程序中有两个角色,一个是管理员,另一个是用户,现在我想让他们都能够访问 Controller 操作,我应该怎么做?

class FooController < ApplicationController
#before_filter is used here,but how?
def methodA #index or new...
...
end
def methodB #show or edit...
...
end
...
end

Devise 创建了一些助手:

before_filter :authenticate_admin! 

admin_signed_in?

current_admin

admin_session

并且在这些助手中,“admin”可以更改为“user”。

最佳答案

如果我理解得很好,你有一个设计模型。每个帐户都被(以某种方式)标记为用户或管理员。因此,只要访问者经过身份验证,他/她就可以访问 Controller 的方法。

在你的 Controller 中,添加before_filter: authenticate_user!(如果你的设计模型被称为“用户”),它应该足够了。

现在如果你有两个模型(每个角色一个),你可以试试这个:

before_filter :deny_to_visitors

private

def deny_to_visitors
redirect_to root_path unless user_signed_in? or admin_signed_in?
end

关于ruby-on-rails - 如何在一个 Rails Controller 中使用两个 Devise 的 before_filters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16593812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com