如何用两个设计验证单个动作?

时间:2013-02-05 08:17:11

标签: ruby-on-rails-3 authentication devise

我在我的项目中实现了两个设计(版本:1.4.8)模型,例如User and Admin。

是否有任何选项可以在具有两个设计的同一控制器中为单个操作配置身份验证? CartsControler的示例:

index, show            -> can access either admin or user
create, update, delete -> can access admin only

目前我通过从application_controller.rb

调用以下方法进行了身份验证
def authenticate_user_or_admin!
  unless user_signed_in? or admin_signed_in?
  redirect_to root_url , :flash => {:alert => "You need to sign in as admin/user before continuing..".html_safe }
  end
end

in carts_controler.rb

class CartsControler < ApplicationController
  before_filter :authenticate_user_or_admin!, :only => [:index, :show]
  before_filter: :authenticate_admin!, :except => [:index, :show]

设计是否提供任何默认选项来验证多个设计模型?

这是解决这个问题的正确方法吗?或任何其他更好的解决方案?

0 个答案:

没有答案