0

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

当前位置参数是 location_id = some integer

关于如何将 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}

4

1 回答 1

1

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

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

或者,您可以使用 nil 的 location_id 来表示“全部”,如果这更适合您的需要,则使用if current_user.location代替。if current_user.super_user

于 2013-02-23T16:03:57.193 回答