我使用设计进行注册,每个用户都属于一个位置。我想创建一个超级用户,无论创建了多少个用户,他们都可以访问所有位置。
目前,位置参数是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}
答案 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
,如果这样可以更好地满足您的需求。