Rails 4:用户只能查看自己的订单

时间:2017-01-25 23:01:33

标签: ruby-on-rails ruby-on-rails-4 permissions

我正在让客户通过我的应用程序下订单。他们可以通过访问以下网址查看订单索引:

@food_orders = @client.food_orders

...我已将索引限制为仅显示属于该用户的订单:

localhost:3000/clients/[:client_id]/food_orders/5

...但是如果他们要访问NSAssert(NO, @"This assert should always be hit."); 并且食品订单#5不是他们的订单,他们仍然可以查看它。

您应该如何限制用户,以便他们只能访问自己的订单?

1 个答案:

答案 0 :(得分:2)

你应该像这样链接你的发现,然后用户只能看到他/她自己的订单。

def show
  @food_order = @client.food_orders.find_by(id: params[:id])

  redirect_to root_path if @food_order.nil?
end