设计超级用户

时间:2013-02-23 15:21:59

标签: ruby-on-rails devise

我使用设计进行注册,每个用户都属于一个位置。我想创建一个超级用户,无论创建了多少个用户,他们都可以访问所有位置。

目前,位置参数是location_id =某个整数

有关如何为超级用户分配等于所有位置的location_id的任何想法吗?

我还应该补充一点,这样做的目的是让我的iOS应用程序能够验证和查看所有api数据。

我现在正在尝试定义location_id = nil以返回location.all

if current_user.location = nil
    @locations = Location.all
  else
    @locations = current_user.location
  end

但是我仍然需要定义nil,因为当使用具有location_id = nil

的用户登录时,我会收到以下错误

没有路线匹配{:action =>“show”,:controller =>“locations”,:id => nil}

1 个答案:

答案 0 :(得分:1)

也许我误解了你正在做的更精细的细节但是,你可以在你的模型中添加一个super_user布尔字段,在控制器中只需使用这样的东西:

if current_user.super_user
  @locations = Location.all
else
  @locations = current_user.location
end

或者,您可以使用location_id为nil来表示“all”,而使用if current_user.location代替if current_user.super_user,如果这样可以更好地满足您的需求。